2014-10-31 2 views
2

Путем прошивки кажется, что IE11 не делает запрос ajax, если он является перекрестным. FF и Chrome, по крайней мере, сделают запрос и выдадут ошибку, если API ресурсов не отправляет необходимые заголовки. API-интерфейс ресурса (Web API 2.0) в моем случае - adding required headers, который будет полезен, если IE делает запрос, но это не так. JavaScriptIE11 не инициирует запрос CORS

клиента:

jQuery.support.cors = true; 

$.fn.somePlugin = function() { 
    $.ajax({ 
     url: apiUrl + '/articles/list/', 
     type: 'GET', 
     crossDomain: true 
    }).done(
     function (data, textStatus, xhr) { 
      console.log('hello world!'); 
     }); 
    return this; 
} 

запрос Аякса выше отлично работает в Chrome и FF, но не в IE11.

Я пробовал:

  1. добавить ссылку на XDomainRequest.js без какого-либо эффекта.
  2. разрешающий запрос на кросс-начало в IE Параметры безопасности - даже если это кажется странным для этого на каждом клиентском компьютере. Несмотря ни на что, это не имело значения.
+0

Я просто попробовал это http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_get в IE 11, и он работает. Проблема лежит где-то в другом месте. –

+0

@ PiotrŁużecki Я использую методы jQuery $ .ajax и $ .getJSON. Не хочу изменять весь мой код на простой объект XMLHttpRequest. – joym8

+1

@ PiotrŁużecki также, я не вижу, где вы делаете запрос на получение креста в своем примере кода. – joym8

ответ

0

У меня была та же проблема. Я не смог получить данные CORS с помощью XMLHttpRequest(), $ .ajax() или $ .ajax. Проблема оказалась локальной (IIS WinPro7). Каждый запрос AJAX CORS был preflighted, который сгенерировал

происхождения http://localhost не найден в заголовке Access-Control-Allow-Origin

ошибку, а затем

XMLHttpRequest: Network Error 0x80070005, Доступ запрещен

Когда я переместил HTML-страницу на веб-сервер, он работал нормально.

+0

Мой api и клиент уже живут на веб-сервере IIS. – joym8

Смежные вопросы