Я использую JSON.Stringify
и JSON.parse
везде, и он отлично работает с Firefox. Он больше не работает с IE9 и не работает в IE8. Что я могу сделать?
JSON.stringify и JSON.parse не работают в IE9?
Ответ 1
почему вы хотите зависеть от браузера, имеющего объект, вместо этого просто добавить файл script Douglas Crockford.. Здесь вы можете найти миниатюрный файл: http://www.json.org/js.html
После импорта вам не нужно беспокоиться о методе, существующем в браузере.
Ответ 2
JSON.stringify
начинается с нижнего регистра s
. Оба stringify
и parse
доступны в IE8 +, , но только в стандартах режим.
Подготовьте свой документ с помощью <!DOCTYPE html>
, если в настоящее время вы используете режим quirks. Также обратите внимание на заглавные буквы методов JavaScript, которые вы называете - все встроенные, начинаются с символа нижнего регистра.
Ответ 3
Для альтернативы, в сценарии, где вам может потребоваться запустить в строгом режиме по любой причине (у меня есть другая библиотека, которая включает в себя "use strict" ), вы можете посмотреть здесь: https://github.com/douglascrockford/JSON-js. Я изменил это, чтобы сначала проверить, если JSON undefined, и только сгенерировать функцию JSON.parse, если она есть:
if (typeof JSON === "undefined") {
var JSON = {
parse: <insert value of json_parse from library here>
};
}
Моя проблема была в том, что код приложения не работает в IE9 (как мне кажется, строгий режим, используемый библиотекой-участником). Это решило проблему для меня.
Ответ 4
простая проблема заключается в том, что отправка заголовков UTF-8 приведет к аннулированию JSON (IE не нравится/не нравится). как описывается проблема, которая может по-прежнему применяться к IE9... однажды написал как, несколько лет назад. добавление поддержки JSON браузеру, который может анализировать собственный JSON, вероятно, не является оптимальным решением, поскольку он создает бесполезные накладные расходы - только потому, что не удалось доставить JSON в ожидаемом формате.