ホームページ  >  記事  >  ウェブフロントエンド  >  クロスドメイン XMLHttpRequest 呼び出しを処理するために HTTP リクエストをプリフライトする方法

クロスドメイン XMLHttpRequest 呼び出しを処理するために HTTP リクエストをプリフライトする方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-18 21:53:30219ブラウズ

How to Preflight HTTP Requests to Handle Cross-Domain XMLHttpRequest Calls?

CORS: HTTP リクエストをプリフライトする方法

クロスドメイン HTTP リクエストを扱う場合、ソースがGET リクエスト URL は、特に GET メソッドと POST メソッドの両方に対応するサービスの場合、常に実行可能であるとは限りません。したがって、効果的な回避策の 1 つは、「Access-Control-Allow-Origin」ヘッダーを含むようにサーバー応答を構成し、OPTIONS リクエストを使用してリクエストをプリフライトすることです。

プリフライト OPTIONS リクエスト中に、ブラウザーには次の 2 つのヘッダーが含まれます。 Control-Request-Method および Access-Control-Request-Header。これらのヘッダーは、クライアントが実際のリクエストで使用する予定のメソッドとヘッダーを示します。

リクエストを正常にプリフライトするには、サーバーはプリフライト応答でこれらのヘッダーを確認する必要があります。たとえば、ブラウザがプリフライト要求中に次のヘッダーを送信した場合:

<code class="console">Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header</code>

サーバーのプリフライト応答には次のヘッダーが含まれる必要があります:

<code class="console">Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header</code>

重要なのは、「Access-Control」 -Allow-Headers" 応答ヘッダーには、"Access-Control-Request-Headers" 要求ヘッダーで指定されているのと同じヘッダーが含まれている必要があり、ワイルドカード文字 '*' を含めることはできません。

サーバーがこれを送信すると、プリフライト応答が完了すると、ブラウザは実際のリクエストの作成を開始します。 CORS 実装の詳細と例については、html5rocks.com/en/tutorials/cors/ などのリソースを参照してください。

以上がクロスドメイン XMLHttpRequest 呼び出しを処理するために HTTP リクエストをプリフライトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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