<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 などのヘッダーが使用される)