ホームページ > バックエンド開発 > PHPチュートリアル > ミドルウェアを使用してLaravel 5.1でCORSを有効にする方法?

ミドルウェアを使用してLaravel 5.1でCORSを有効にする方法?

Mary-Kate Olsen
リリース: 2024-12-07 08:55:13
オリジナル
892 人が閲覧しました

How to Enable CORS in Laravel 5.1 Using Middleware?

Laravel 5.1 で CORS を有効にする

Laravel 5.1 で Cross-Origin Resource Sharing (CORS) を有効にするには、ミドルウェアを利用できます。カスタム ミドルウェアを使用して CORS を実装するための包括的なガイドは次のとおりです。

  1. CORS ミドルウェアを作成します。

アプリ内にファイル CORS.php を作成します。 /Http/Middleware ディレクトリ。このファイルに次のコードを追加します:

<?php

namespace App\Http\Middleware;

use Closure;

class CORS
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        header("Access-Control-Allow-Origin: *");

        // ALLOW OPTIONS METHOD
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin'
        ];
        if ($request->getMethod() == "OPTIONS") {
            // The client-side application can set only headers allowed in Access-Control-Allow-Headers
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value)
            $response->header($key, $value);
        return $response;
    }
}
ログイン後にコピー
  1. ミドルウェアを登録します:

app/Http/Kernel.php ファイルで、次のコードを $routeMiddleware に追加しますarray:

'cors' => \App\Http\Middleware\CORS::class,
ログイン後にコピー
  1. ミドルウェアの使用:

これで、ルートで cors ミドルウェアを使用できるようになりました。例:

Route::get('example', ['middleware' => 'cors', 'uses' => 'ExampleController@dummy']);
ログイン後にコピー

これらの変更を追加すると、指定されたルートに対して CORS が有効になり、任意のドメインからのクロスオリジン リクエストが許可されます。

以上がミドルウェアを使用してLaravel 5.1でCORSを有効にする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート