GET リクエストではなく OPTIONS リクエストが届くのはなぜですか? 質問する

GET リクエストではなく OPTIONS リクエストが届くのはなぜですか? 質問する
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script>
$.get("http://example.com/", function(data) {
     alert(data);
});
</script>

その URL に対して OPTIONS リクエストが実行され、その後コールバックは何も呼び出されません。

クロスドメインでない場合は正常に動作します。

jQuery はノードを使用して呼び出しを行い<script>、ロードされたときにコールバックを実行するべきではないでしょうか? 結果を取得できないことは理解していますが (クロスドメインであるため)、それでも問題ありません。呼び出しが実行されるだけです。これはバグですか、それとも私が何か間違っているのでしょうか?

ベストアンサー1

によると翻訳

事前リクエスト

単純なリクエスト (上記で説明) とは異なり、「プリフライト」リクエストは、実際のリクエストを送信しても安全かどうかを判定するために、最初に HTTP OPTIONS リクエスト ヘッダーを他のドメインのリソースに送信します。クロスサイト リクエストは、ユーザー データに影響を与える可能性があるため、このようにプリフライトされます。特に、リクエストがプリフライトされるのは次の場合です。

  • GET または POST 以外のメソッドを使用します。また、POST を使用して、application/x-www-form-urlencoded、multipart/form-data、text/plain 以外の Content-Type でリクエスト データを送信する場合 (たとえば、POST リクエストが application/xml または text/xml を使用して XML ペイロードをサーバーに送信する場合)、リクエストはプリフライトされます。
  • リクエストにカスタム ヘッダーを設定します (例: リクエストで X-PINGOTHER などのヘッダーが使用される)

おすすめ記事