"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?
Ответы
Ответ 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>