web-dev-qa-db-ja.com

XMLHttpRequest:ネットワークエラー0x80070005、Microsoft Edgeでアクセスが拒否されました(IEは拒否されません)

非常に単純なajaxリクエストがあります(以下を参照)。サーバーはCORSを使用しており、IE 10 +、Chrome、Firefox、Opera)で正常に動作します。オンMicrosoft Edgeしかし、それは失敗します

XMLHttpRequest:ネットワークエラー0x80070005、アクセスが拒否されました。

投稿 hereherehere 、および here を調査しましたが、有効な答えが見つかりません。これらの人々は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が唯一の問題です。

20
HockeyJ

この問題は、Microsoft Edgeを使用している開発者にはもう存在しません。 localhostテストで問題が発生した場合は、about:flagsに移動し、localhostループバックを許可しますがチェックされます。


Microsoft Edgeは現在localhostテストをサポートしていません(そのまま)。ただし、ここで提供されるガイダンスに従って有効にすることができます: http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/

将来のリリースでこの問題の解決に取り組んでいます。

10
Sampson

ビルド10158では、SpartanがMicrosoft Edgeに完全にブランド変更されたため、コマンドがわずかに変更されたため、Microsoft Edgeで有効にするには、管理者コマンドプロンプトから次のコマンドを実行します。

CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
0
David Wengier

Ajax呼び出しの直前にこれを使用します。$ .support.cors = true;

0
Cedric Michel