ホームページ >バックエンド開発 >PHPチュートリアル >クロスドメイン機能を有効にするlaravelの例
この記事は主に、Laravel でクロスドメイン機能を有効にする方法に関する関連情報をサンプルコードを通じて詳しく紹介します。この記事は、学習や仕事に役立つ特定の参考になります。以下の編集者と一緒に学びましょう。
はじめに
この記事では主に、クロスドメイン機能を有効にするlaravelに関する関連コンテンツを紹介し、参考と学習のために共有します。以下では多くを述べませんが、詳細を見てみましょう。導入。
クロスドメインリクエスト
セキュリティ上の理由から、ブラウザはスクリプトでのクロスドメインリクエストを制限します。 XMLHttpRequest は同一生成元ポリシーに従うため、XMLHttpRequest を使用して HTTP リクエストを構築するすべてのアプリケーションは、独自のドメイン名にのみアクセスできます。クロスドメインリクエストを構築する必要がある場合、開発者はブラウザと協力して、クロスドメインリクエストを許可する構成を作成する必要があります。 -ドメインリクエスト。
W3C アプリケーション ワーキング グループは、Web アプリケーション サーバーがクロスサイト アクセス制御をサポートできるようにするクロスリソース共有メカニズムを推奨し、安全なクロスサイト データ送信を可能にします。このメカニズムは、元のモードが拡張されました。
クロスオリジンリソース共有標準
クロスオリジンリソース共有標準では、サーバーがブラウザを通じてサーバー上のリソースにアクセスできるソースを宣言できるようにする一連の HTTP ヘッダーが追加されます。さらに、サーバー データへの破壊的な応答を引き起こす HTTP リクエスト メソッド (特に GET 以外の HTTP メソッド、または特定の MIME タイプを使用した POST リクエスト) の場合、標準ではブラウザが最初に OPTIONS 形式でプリセット リクエストを送信する必要があることが強く要求されています。 .リクエスト (プリフライトリクエスト) を使用して、クロスオリジンリクエスト用にサーバーによってサポートされている HTTP メソッドを取得します。サーバーがクロスオリジンリクエストを許可していることを確認したら、実際のHTTPリクエストメソッドを使用して実際のリクエストを送信します。サーバーは、リクエストとともにクレジット情報 (Cookie および HTTP 認証関連データを含む) を送信する必要があるかどうかをクライアントに通知することもできます。Response Header
Request Header
ミドルウェア
Laravelでクロスドメインリクエストを許可するには、特にクロスドメインリクエストを処理するレスポンスヘッダーを追加する応答を追加するミドルウェアを構築できます:<?php namespace App\Http\Middleware; use Closure; use Response; class EnableCrossRequestMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', config('app.allow')); $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS'); $response->header('Access-Control-Allow-Credentials', 'true'); return $response; } }
ここで、以下の点に注意してください:
独自のニーズに応じてこのミドルウェアを構築できます。リクエストに認証情報 (Cookie、セッションを含む) を含める必要がある場合は、Access-Control-Allow-Credentials を true に指定する必要があります。この応答ヘッダーを指定しない場合、ブラウザは単に応答を無視します。
Access-Control-Allow-Credentials が応答で true として指定されている場合、Access-Control-Allow-Origin を *
Post-middleware は正常に応答する場合にのみ応答ヘッダーが追加されます。また、例外が発生した場合、応答はミドルウェアを経由しません。
概要
以上がクロスドメイン機能を有効にするlaravelの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。