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

JSON.stringify и JSON.parse не работают в IE9?

Я использую JSON.Stringify и JSON.parse везде, и он отлично работает с Firefox. Он больше не работает с IE9 и не работает в IE8. Что я могу сделать?

4b9b3361

Ответ 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 в ожидаемом формате.