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

Ошибка 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

4b9b3361

Ответ 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?