ホームページ >バックエンド開発 >PHPチュートリアル >Laravelでクロスドメイン機能を有効にする方法の詳細な説明
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 でリソースルーティングを書き換える方法の詳細な説明
Laravel がプリロードを通じてモデルクエリを最適化する方法の詳細な説明
Laravelの修正方法を詳しく解説in url() ルートアドレス
以上がLaravelでクロスドメイン機能を有効にする方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。