非常に単純な ajax リクエストがあります (以下を参照)。サーバーは CORS を使用しており、IE 10 以降、Chrome、Firefox、および Opera で正常に動作します。ただし、 Microsoft Edgeでは失敗します。
XMLHttpRequest: ネットワーク エラー 0x80070005、アクセスが拒否されました。
ここ、ここ、ここ、ここの投稿を調査しましたが、うまくいく答えが見つかりません。これらの人々は IE で問題を抱えていましたが、contentType (この get には必要ありません) と crossDomain を追加すると問題なく動作します。
CanIUseは、CORS が Edge で使用可能であると述べているようです。要求は IE9 ダウンでも失敗しますが、CanIUse は CORS の部分的なサポートのみを示しているため、理解できます。
どうすればこれを修正できますか?
コード:
$.ajax({
crossDomain: true,
url: "http://localhost:2023/api/DoAction/test",
success: function (a) {
var res = JSON.parse(a);
alert(res.content);
},
error: function (a, e, r) {
alert(a.responseText);
}
});
アップデート
手がかりが得られる場合に備えてさらに情報を追加するには、Ajax 要求が Azure から送信され、OWIN セルフ ホスティングを使用して作成された localhost Web サイトに投稿されます。これは珍しいことですが、ソフトウェア (ローカルでのみ使用可能) がクラウド サービスからデータを取得するために必要です。述べたように、他のすべてのブラウザーで問題なく動作しますが、Edge だけが問題です。