ミドルウェアを使用して Laravel でクロスドメイン リソース共有 (CORS) を実装する方法
概要:
クロスドメイン リソース共有 (CORS) Web アプリケーションが異なるドメイン名でリソースを共有できるようにするブラウザ メカニズムです。人気の PHP フレームワークである Laravel は、クロスドメイン要求を処理するミドルウェアを使用して CORS を処理する便利な方法を提供します。
この記事では、ミドルウェアを使用して Laravel で CORS を実装する方法を紹介します。これには、ミドルウェアの構成方法、許可されるドメイン名とリクエスト メソッドの設定方法、および具体的なコード例が含まれます。
ステップ 1: CORS ミドルウェアの作成
まず、CORS を処理するミドルウェアを作成する必要があります。ターミナルで次のコマンドを使用して、新しいミドルウェア ファイルを生成します:
php Artisan make:middleware CorsMiddleware
このコマンドは、app/Http/Middleware
ディレクトリにあります。 CorsMiddleware.php
という名前のファイルを生成します。
CorsMiddleware.php
ファイルを開き、handle
メソッドを次のように変更します。
public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; }
このミドルウェアでは、3 つの応答ヘッダーを設定します。 Access-Control-Allow-Origin
、Access-Control-Allow-Methods
、および Access-Control-Allow-Headers
です。 Access-Control-Allow-Origin
すべてのソースからのクロスドメイン アクセスを許可します。また、必要に応じて特定のドメイン名を設定することもできます。 Access-Control-Allow-Methods
許可されるリクエスト メソッドを定義します。ここでは、共通の GET、POST、PUT、DELETE、および OPTIONS を設定します。 Access-Control-Allow-Headers
許可されるリクエスト ヘッダーには、Content-Type と Authorization が含まれます。
ステップ 2: CORS ミドルウェアを登録する
app/Http/Kernel.php
ファイルを開き、$middleware
配列を見つけて追加します。次のコード行を配列に追加します。
protected $middleware = [ // ... AppHttpMiddlewareCorsMiddleware::class, ];
上記のコードは、CorsMiddleware
ミドルウェアをグローバル ミドルウェア スタックに追加して、すべてのリクエストに適用できるようにします。
ステップ 3: CORS ミドルウェアを使用する
CORS ミドルウェアが有効かどうかを確認するために、API ルートで使用できます。 routes/api.php
ファイルに GET ルートを追加し、このルートに CorsMiddleware
middleware を使用します:
Route::get('/test', function () { return response()->json(['message' => 'Hello World']); })->middleware('cors');
このルートは、「Hello World」を含むメッセージを返します。 " メッセージの JSON 応答。
ステップ 4: CORS 設定を確認する
これで、ブラウザーや REST クライアントなど、クロスドメイン アクセスをサポートする任意のクライアントを検証に使用できるようになります。ブラウザの開発ツールでは、応答ヘッダー情報を確認できます。
たとえば、Chrome ブラウザで開発者ツールを開き、[ネットワーク] タブに切り替えて、ステップ 3 で定義したルート /api/test
にアクセスします。応答ヘッダーには、Access-Control-Allow-Origin
、Access-Control-Allow-Methods
、および Access-Control-Allow-Headers
が表示されます。設定。
すべてが正常であれば、異なるドメイン名から HTTP リクエストを送信し、応答を正常に取得できるはずです。
結論:
Laravel フレームワークは、ミドルウェアを使用することで、クロスドメインのリソース共有を実現する簡単な方法を提供します。この記事では、CORS ミドルウェアの作成、ミドルウェアの登録、ミドルウェアを使用してクロスドメイン要求を処理する方法について詳しく説明します。この記事が Laravel で CORS を実装するのに役立ち、参考となる十分なコード例が提供されることを願っています。
以上がミドルウェアを使用して Laravel でクロスオリジン リソース共有 (CORS) を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。