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

"JSON" - ошибка undefined в JavaScript в Internet Explorer

Мы используем 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, таких как Use SSL3.0 и Enable Smart Screen, флажки на вкладке "Дополнительно" в настройках Интернета были сняты.

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

Какова фактическая проблема в IE8?

4b9b3361

Ответ 1

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

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

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

Вот связанный с этим вопрос: JSON на IE6 (IE7)

UPDATE

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

Ответ 2

<!DOCTYPE html>

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

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />

Ответ 3

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

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

Я надеюсь, что это сработает.

Ответ 4

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

Ответ 5

Измените тип контента на "application/x-www-form-urlencoded"

Ответ 6

У меня была эта ошибка 2 раза. Каждый раз это решалось путем изменения типа ajax. Или GET для POST или POST для получения.

$.ajax({
        type:'GET', // or 'POST'
        url: "file.cfm?action=get_table&varb=" + varb
    });

Ответ 7

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

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

//

ob_clean();
?>
<!DOCTYPE html>