jQuery を使用して AJAX POST リクエストを作成する場合、リクエストの動作を制御するカスタム ヘッダーを含めることができます。 。ただし、クロスオリジン リクエストにおけるアクセス制御リクエスト ヘッダー (CORS) の役割を理解することが重要です。
デフォルトでは、jQuery はプレフライト チェックを開始するための OPTIONS リクエストをクロスオリジン リクエストの前に置きます。 。このチェックにより、サーバーが元のリクエストに含まれる特定の HTTP メソッドとヘッダーを許可していることが確認されます。このプリフライト チェック中に、jQuery は Access-Control-Request-Headers ヘッダーをリクエストに自動的に追加します。これは、元のリクエストに存在するカスタム ヘッダーを指定します。
提供された例では、
$.ajax({ ... headers: { "My-First-Header":"first value", "My-Second-Header":"second value" } ... })
リクエスト パラメーターには 2 つのカスタム ヘッダーが含まれています。プリフライト チェックが開始されると、ブラウザはリクエスト ヘッダーを次のように自動的に変更します:
... Access-Control-Request-Headers: My-First-Header,My-Second-Header ...
これにより、サーバーは実際の POST リクエストに含まれるカスタム ヘッダーを認識できるようになります。ただし、カスタム ヘッダー自体はプリフライト チェック リクエストには存在しません。
実際の POST リクエストにカスタム ヘッダーを含めるには、次のように beforeSend 関数を使用できます。
$.ajax({ ... beforeSend: function(xhr) { xhr.setRequestHeader("My-First-Header", "first value"); xhr.setRequestHeader("My-Second-Header", "second value"); } ... })
この場合、カスタム ヘッダーは、プリフライト チェックをトリガーせずに、POST リクエストに直接含まれます。クロスオリジンリクエストの場合、サーバーは Access-Control-Allow-Headers 応答ヘッダーで指定されたヘッダーを明示的に許可する必要があることに注意してください。
以上がフライト前チェックをトリガーせずに、AJAX POST リクエストにカスタム ヘッダーを含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。