Ошибка jQuery AJAX в IE
В IE не работает следующий вызов AJAX.
$.ajax({
url:"{{SITE_URL}}/content/twitter.json",
dataType:"json",
error:function(xhr, status, errorThrown) {
alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
},
success:function(json) {
...Snip...
}
});
Функция ошибки возвращает
Undefined
parsererror
OK
На сервер не поступает запрос, поэтому я не думаю, что это проблема с JSON.
Исправлено, см. # 1351389
Ответы
Ответ 1
Исправлено, я изменил тип контента от application/json; charset=utf8
до простого application/json
.
Я ненавижу IE:)
Также, чтобы избежать супер кэширования IE, попробуйте следующее:
var d = new Date();
$.ajax({
url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(),
...Snip...
Таким образом, каждый запрос является новым URL-адресом для IE: D
Ответ 2
Для проблемы кэширования, почему бы вам просто не использовать параметр cache: false
?
$.ajax({
url: "yoururl",
cache: false,
....
Ответ 3
это копия/вставка? одна вещь, которая получает меня все время, оставляет последний "," в конструкторе объекта. то есть большинство браузеров JS принимают:
o = { a:1, b:2, c:3, };
но IE задыхается от этого, потому что запятая после последнего элемента. измените его на:
o = { a:1, b:2, c:3 };
и он работает.
Ответ 4
В новых версиях Internet Explorer (IE7) необходимо написать следующую строку перед вызовом $. ajax, иначе она никогда не вызовет функцию:
$.ajaxSetup({ cache: false }); //this line before $.ajax!!!
$.ajax({
//codes
//codes
//codes
});
Ответ 5
IE кэширует запросы AJAX действительно агрессивно (в большей степени, чем Firefox, так или иначе). Вы должны установить заголовки Cache-Control в ответ соответствующим образом, если это не подходит для вашего сайта.
Ответ 6
Одной из основных проблем со статически сгенерированными JSON и IE являются ведущие "запятые", для примеров это вызывает ошибку в IE:
{
"one":"hello",
"two":"hi",
}
Обратите внимание на последнюю запятую.
Ответ 7
Что такое кусок {{SITE_URL}}. Попробуйте взглянуть на код в исходном коде браузера. Если фрагмент {{SITE _URL}} имеет завершающую косую черту, и это сделает URL-адрес запроса:
http://modomain.com//content/twitter.json
Что может вызывать IE?
Ответ 8
IE: неопределенная ошибка JSON при
http://funkatron.com/site/comments/safely-parsing-json-in-javascript/
используя dataType: "json" и избегайте синтаксического анализа