Подтвердить что ты не робот

XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен на Microsoft Edge (но не в IE)

У меня очень простой запрос ajax (см. ниже). Сервер использует CORS и отлично работает в IE 10+, Chrome, Firefox и Opera. Однако на Microsoft Edge он терпит неудачу с помощью

XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен.

Я исследовал сообщения здесь, здесь, здесь и здесь, но не может найти ответ, который работает. У этих людей были проблемы с IE, но добавление contentType (не требуется для этого получения), и 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 и отправляется на сайт localhost, созданный с использованием собственного хостинга OWIN. Это необычно, но требуется для программного обеспечения (которое может использоваться только локально) для получения данных из облачной службы. Как было сказано, он отлично работает для всех других браузеров, проблема Edge - единственная проблема.

4b9b3361

Ответ 1

Эта проблема больше не должна существовать для разработчиков, использующих Microsoft Edge. Если у вас возникли проблемы с тестированием localhost, перейдите к about: flags и убедитесь, что установлен флажок Checkback localhost.


Microsoft Edge в настоящее время не поддерживает (из коробки) локальное тестирование. Однако вы можете включить его, следуя приведенным здесь указаниям: http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/.

Мы работаем над решением этой проблемы в будущей версии.

Ответ 2

Для сборки 10158 команда немного изменилась, с ребрендингом Spartan полностью в Microsoft Edge, поэтому, чтобы включить его в Microsoft Edge, выполните следующую команду из командной строки администратора:

CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

Ответ 3

Как раз перед вашим вызовом ajax используйте это: $.support.cors = true;