2013-05-04 5 views
1

У меня есть следующий код, который работает на Chrome и Firefox, но не в IE9

$.ajax({ 
    type : type, 
    url : url, 
    data : reqData, 
    crossDomain: true, 
    cache: false, 
    dataType : dataType, 
    contentType : contentType, 
    success : successFunction 
}).fail(function() { 
    showError("IE9!"); 
}); 

тип POST, тип данных JSON и CONTENTTYPE является применение/JSON Все другие параметры являются правильными

Я попытался удалить CONTENTTYPE, очистить кэш, установка кэш правда, ничего не похоже на работу

Любые мысли? Заранее спасибо

+0

Что именно представляет собой данная ошибка? Вызывает ли вызов ajax сервер? – Nomad101

+1

Можете ли вы предоставить дополнительную информацию о запросе? Если это «crossDomain», установлен ли сервер на поддержку CORS, в том числе на запросы [перед полетом 'OPTIONS] (https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests) браузер может отправить? В jQuery 'error' (и' .fail() ') обратные вызовы включают аргумент' errorThrown' - что он вам говорит? И попытайтесь зафиксировать ** данные о сети ** в инструментах разработчика IE9; проверьте статус и ответ отправленных запросов и сравните их с ожидаемыми. –

+0

Вы пытались использовать инструмент отладки http, например [Fiddler] (http://fiddler2.com/) или вкладку сети в инструментах отладки браузера? Эти инструменты помогут вам увидеть трафик, чтобы вы знали, действительно ли отправлен запрос, какой код возврата и т. Д. – clav

ответ

0

Проверьте URL путь (должен быть абсолютным) и сделать его уникальным, добавив метку времени, например

var url = 'http://mydomain.com/' ** not '/' ** 
var timestamp = new Date() 
var uniqueUrl = url + (uri.indexOf("?") > 0 ? "&" : "?") + "timestamp=" + timestamp.getTime() 

затем

url : uniqueUrl, 
2

вы не можете использовать обычный Ajax для перекрестного доступа к домену в т. е. вам необходимо использовать XDR для этой цели , пожалуйста, обратитесь к this link

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