http://www.a.com/service.asmxでWebサービスを作成し、そこからクロスドメインajaxリクエストを送信しますhttp://www.b.com。 Firebug、またはLive HTTP Headers、またはanyのヘッダーを確認しますあなたが望む他のプラグイン。
要求ヘッダーの中にX-Requested-WithHTTPヘッダーフィールドのトレースはありません。
ただし、同じドメインから同じサービスにajaxリクエストを送信する場合(たとえばhttp://www.a.com/about) 、そのヘッダーフィールドが表示されます。
クロスドメインAjaxリクエストのX-Requested-Withヘッダーフィールドが省略されているのはなぜですか?
更新:JSONP呼び出しはAJAX呼び出しではないことを知っています。したがって、X-Requested-Withヘッダーフィールド、JSONP呼び出し。
JQueryを使用してajaxリクエストを行う場合、クロスドメインであるため、ヘッダーX-Requested-With(HTTP_X_REQUESTED_WITH)= XMLHttpRequestを送信しません。ただし、これを修正してヘッダーを送信するには2つの方法があります。
オプション1)ajax呼び出しでヘッダーを手動で設定します。
$.ajax({
url: "http://your-url...",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});
オプション2)クロスドメインのデフォルトを使用しないようにjQueryに指示します。これにより、ajaxリクエストにX-Requested-Withヘッダーが保持されます。
$.ajax({
url: "http://your-url...",
crossDomain: false
});
しかし、これでは、サーバーはそれらのヘッダーを許可する必要があり、サーバーはそれらのヘッダーを印刷する必要があります。
print "Access-Control-Allow-Origin: *\n";
print "Access-Control-Allow-Headers: X-Requested-With, Content-Type\n";
上記の最初の行はエラーを回避します"OriginはAccess-Control-Allow-Originでは許可されていません。"
2行目はエラーを回避します「リクエストヘッダーフィールドX-Requested-WithはAccess-Control-Allow-Headersでは許可されていません。」