ホームページ  >  記事  >  PHPフレームワーク  >  ミドルウェアを使用して Laravel でクロスオリジン リソース共有 (CORS) を実装する方法

ミドルウェアを使用して Laravel でクロスオリジン リソース共有 (CORS) を実装する方法

WBOY
WBOYオリジナル
2023-11-02 13:57:281436ブラウズ

ミドルウェアを使用して Laravel でクロスオリジン リソース共有 (CORS) を実装する方法

ミドルウェアを使用して 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-OriginAccess-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 ルートを追加し、このルートに CorsMiddlewaremiddleware を使用します:

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-OriginAccess-Control-Allow-Methods、および Access-Control-Allow-Headers が表示されます。設定。

すべてが正常であれば、異なるドメイン名から HTTP リクエストを送信し、応答を正常に取得できるはずです。

結論:

Laravel フレームワークは、ミドルウェアを使用することで、クロスドメインのリソース共有を実現する簡単な方法を提供します。この記事では、CORS ミドルウェアの作成、ミドルウェアの登録、ミドルウェアを使用してクロスドメイン要求を処理する方法について詳しく説明します。この記事が Laravel で CORS を実装するのに役立ち、参考となる十分なコード例が提供されることを願っています。

以上がミドルウェアを使用して Laravel でクロスオリジン リソース共有 (CORS) を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。