«JSON» - неопределенная ошибка в JavaScript в Internet Explorer - PullRequest
49 голосов
/ 17 марта 2011

Мы используем jQuery в нашем приложении. Мы использовали плагин jQuery для реализации сессии JavaScript.

Он работает правильно в Firefox и большинстве браузеров Internet Explorer 8.

Но в некоторых браузерах Internet Explorer 8 это не работает. Это дает следующую ошибку.

Message: 'JSON' is undefined
Line: 6
Char: 3
Code: 0


Message: '$.namesession' is null or not an object
Line: 53
Char: 2
Code: 0

`

Версия Internet Explorer в обоих случаях одинакова.

Но в настройках Internet Explorer были некоторые различия, такие как Использовать SSL3.0 и Включить фильтры Smart Screen Флажки на вкладке "Дополнительно" в параметрах Интернета были сняты.

Когда мы проверили это, оно начало работать. Когда мы их отключили, это все еще работало.

Какая проблема в IE8?

Ответы [ 7 ]

67 голосов
/ 17 марта 2011

Возможно, это не то, что вы ищете, но у меня была похожая проблема, и я решил ее, включая JSON 2, для своего приложения:

https://github.com/douglascrockford/JSON-js

Другие браузеры изначально поддерживают JSONно IE <8 (также режим совместимости с IE 8) этого не делает, поэтому вам нужно включить его. </p>

Вот еще вопрос: JSON в IE6 (IE7)

ОБНОВЛЕНИЕ

парсер JSON обновлен, поэтому вы должны использовать новый: http://bestiejs.github.io/json3/

19 голосов
/ 28 июня 2013
<!DOCTYPE html>

В противном случае IE8 работает неправильно.Также вы должны использовать:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
7 голосов
/ 13 декабря 2012

Пожалуйста, добавьте json2.js в ваш проект. я столкнулся с той же проблемой, которую исправил.

пожалуйста, используйте ссылку: https://raw.github.com/douglascrockford/JSON-js/master/json2.js и создайте новый файл json.js, скопируйте страницу и прошлое во вновь созданный файл и переместите этот файл в веб-приложение.

Надеюсь, это сработает.

6 голосов
/ 17 марта 2011

Проверьте наличие дополнительных запятых в вашем ответе JSON. Если последний элемент массива имеет запятую, это прервется в IE

3 голосов
/ 20 мая 2012

Измените тип содержимого на «application / x-www-form-urlencoded»

0 голосов
/ 10 ноября 2014

У меня недавно была та же самая проблема.В моем случае на вершине php-скрипта у меня была некоторая генерация кода, очевидно, некоторая дополнительная информация для браузера.Помогло удаление пустых строк (между?> И html-тегом) и простая очистка:

<?php 
include('../config.php');

//

ob_clean();
?>
<!DOCTYPE html>
0 голосов
/ 10 апреля 2012

У меня была эта ошибка 2 раза. Каждый раз это решалось изменением типа ajax. Либо ПОЛУЧИТЬ, чтобы ПОСТАТЬ или ПОСТ, чтобы ПОЛУЧИТЬ.

$.ajax({
        type:'GET', // or 'POST'
        url: "file.cfm?action=get_table&varb=" + varb
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...