質問: IE9で$.ajaxが動作しません(IE10やChromeでの正常動作は確認済み) 現在ajax実行時のソースは下記のソースの通りです。 現状の動作としてはサーバー側に処理が移る前に、 error: function (XMLHttpRequest, textStatus, errorThrown) に到達してしまう状況です。 textStatusには"error"、errorThrownには"アクセスが拒否されました。"という文字列が入っています。 "アクセスが拒否されました。"の対応策として、このサイトを参考に「jquery.xdomainrequest.min.js」を試したのですが、依然として"アクセスが拒否されました。"が帰ってきます。 現在はこのサイトを参考に、XDomainRequestでの対応を試みています。 解決方法の分かる方がいましたら、ご教授をお願いします。 ``` $.ajax( { url: url, crossDomain: true, type: 'GET', processData: false, contentType: false, data: jsonData, async: false, success: function (jsonData) { ~ }, error: function (XMLHttpRequest, textStatus, errorThrown) { ~ } }); ```
回答: IE10未満のXMLHttpRequestはクロスドメイン通信に対応していません。その代りIE8以降ではXDomainRequestが提供されています。しかしjQueryではこれに対応せずプラグインを使うことになっています。 質問文にはどのようなサイトを参考にされたのか、プラグインを読み込んでいるかが書かれておらず一つの可能性としてあげました。 質問文が更新されたのでそれを踏まえて追記します。 jQueryのチケットからリンクされているXDomainRequest - Restrictions, Limitations and Workaroundsに各種制限事項が挙げられています。いくつかはプラグイン側で回避策がとられていますが、回避できない制限もあります。これらに引っかかっている可能性はありませんか? 特に > > 5 No authentication or cookies will be sent with the request > > 7 Requests must be targeted to the same scheme as the hosting page > > > などがあります。