リクエストdataTypeが "jsonp"または "script"に設定されていない限り、クロスドメインAJAXリクエスト(jQuery 1.7.2を使用)はIE9では実行されません。IE9でのクロスドメインAJAXリクエスト
この問題は、レスポンスを気にせず、データタイプを不特定のままにしている(はい、回答に気を付ける必要があることがわかっています)。
ので、例えば、これは動作します:
$.ajax({
url: "http://www.google.com",
type: "GET", // or "POST"
dataType: 'jsonp'
});
をしかし、これはしません: "仕事" と
$.ajax({
url: "http://www.google.com",
type: "GET" // or "POST"
});
私はFirebugのか、F12で行われたHTTPリクエストを見ていることを意味します。
両方のリクエストは他のブラウザでも動作します。 jQuery.support.cors = true;
を設定しても、成功には影響しません。また、crossDomainをtrueに設定したり、AJAXリクエスト内でfalseにキャッシュしたりしません。
AJAXリクエストの成功は、IEで要求されたdataTypeに依存するのはなぜですか?返されたデータを処理する能力に影響する理由を理解できます。私はまた、一部のサーバーが特定のdataTypeに対するすべての要求を拒否するかもしれないことを理解しています(ただし、ここでは明らかにそうではありません)。
あなたはJSONPが何であるかを理解する必要があります。 – SLaks
解決方法を見つけましたか?私はIE9 + jQuery 1.7.2でWebAPIにクロスドメインajax POSTSを行っているのと同じ問題があります。私はFF/Chrome/Safariが正しく動作することを可能にするサーバー側にCORSサポートを組み込んでいます。 IE9はCORSのサポートを決定するために飛行前のOPTIONSリクエストを発行することを単に拒否します... – mellodev