IE7, не переваривающий JSON: “ошибка анализа”

При попытке ПОЛУЧИТЬ JSON, моя функция обратного вызова НЕ стреляет.

$.ajax({
    type:"GET",
    dataType:'json',
    url: myLocalURL,
    data: myData,
    success: function(returned_data) { 
        alert('success');
    }
});

Самая странная часть этого то, что:

  1. мой JSON (s) проверяет на JSONlint
  2. это ТОЛЬКО перестало работать на IE7... он работает в Safari, Chrome и всех версиях Firefox, (и даже в IE8). Если я использую 'ошибку', то она сообщает о "parseError"... даже при том, что она проверяет!

Есть ли что-нибудь, что я пропускаю? РАЗВЕ IE7 не обрабатывает определенные символы, структуры данных (мои данные ничего не имеют неалфавитно-цифровым, но это ДЕЙСТВИТЕЛЬНО имеет вложенный JSONs)? Я использовал тонны других вызовов Ajax что вся работа (даже в IE7), но за исключением ЭТОГО вызова.

Возврат данных в качестве примера здесь: (это - структурно полный пример, означая, что он только пропускает несколько вторых уровневых полей, но следует за этой точной иерархией),

{"question":{
             "question_id":"19",
             "question_text":"testing",
             "other_crap":"none"
            },
  "timestamp":{
              "response":"answer",
              "response_text":"the text here"
              }
}

Я полностью в недоумении. Надо надеяться, у кого-то есть некоторое понимание, что идет... на спасибо!

РЕДАКТИРОВАНИЕ Здесь является копией САМОГО ПРОСТОГО случая фиктивных данных, которые я использую..., это все еще не работает в IE7.

{
  "question":{
         "question_id":"20",
         "question_text":"testing :",
         "adverse_party":"none",
         "juris":"California",
         "recipients":"Carl Chan"
         }
}

Я начинаю сомневаться, что это - проблема JSON..., но я понятия не имею, чем еще это могло быть. Вот некоторые другие ресурсы, что я нашел, что это могло быть причиной, но они, кажется, не работают также: http://firelitdesign.blogspot.com/2009/07/jquerys-getjson.html (Django использует Unicode по умолчанию, таким образом, я не думаю, что это вызывает его),

У кого-либо есть какие-либо другие идеи?

5
задан Léo Lam 2 July 2014 в 17:23
поделиться

2 ответа

Приведенный вами пример данных выглядит нормально, но у меня все еще сильное подозрение, что где-то есть незакрытая запятая, как здесь:

 "timestamp":{
              "response":"answer",
              "response_text":"the text here"
              }, <------------
}

IE - единственный браузер, который (правильно) спотыкается на этом.

Если это не так, можете ли вы показать полную выборку данных (или подтвердить, что пример, который вы показываете, действительно является полной выборкой)?

.
2
ответ дан 15 December 2019 в 00:57
поделиться

Вы уже исключили возможность проблемы с кешированием?

например. вы тестировали IE7, когда myLocalURL вернул недопустимый json. IE7 по-прежнему кэширует этот ответ и поэтому не работает. Попробуйте добавить что-то вроде этого (например, если php) в myLocalURL или сделайте myLocalURL похожим на myLocalURL? Random = 123 только для проверки, чтобы убедиться, что это не так. вещь кеширования

header("Cache-Control: no-cache, must-revalidate");
header("Expires: 0");

Вы возвращаете правильный заголовок типа содержимого? например

header("Content-Type: application/json");
1
ответ дан 15 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: