1

Мы обнаружили, что наш вызов ajax для JSON resouce не работал в IE9, и нам пришлось использовать API запросов домена X. Но мой вызов просто не вызывает функцию «onload», если браузер не установлен в режим совместимости, что не является вариантом.Internet Explorer 9- X Domain Request работает только в режиме совместимости

var xdr = new XDomainRequest(); // Use Microsoft XDR 
xdr.open('get', uri); 
xdr.onload = function() { 
    //debugger; 
    var JSON = $.parseJSON(xdr.responseText); 

    if (JSON == null || typeof (JSON) == 'undefined') { 
     JSON = $.parseJSON(data.firstChild.textContent); 
    } 

    ieCallback(JSON); 
}; 

xdr.onerror = function() { 

    _result = false; 
}; 

xdr.send(); 
+0

Попробуйте настроить настройки интрасети и посмотреть, не оказывает ли это влияние – bunion

+0

Вы имеете в виду настройки IE? Я уменьшил уровень безопасности для интернет-зоны, и я добавил оба домена в доверенный список. – Jess

+1

Да, настройка IE, может быть, это: http://stackoverflow.com/questions/8058446/ie-xdomainrequest-not-always- Работа ? – bunion

ответ

1

Проблема была вызвана явной ошибкой в ​​IE9, которая вызывала прерывания XDR. Решение было перезаписать метод по умолчанию xdr.onprogress с пустой функцией:

xdr.onprogress = function() { }; 

This helpful blog post Перри Митчелл обнаружил проблему. Интересно, что он прерывался каждый раз, за ​​исключением режима совместимости - возможно, тайм-аут выполнялся тем фактом, что я запускал IE9 на виртуальной машине.

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

  • Нет связанных вопросов^_^