在Internet Explorer中,“JSON”是JavaScript中的未定义错误
我们在我们的应用程序中使用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”和“Internet选项”的“高级”选项卡中的“ 启用智能屏幕过滤器”checkbox未被选中。
当我们检查它,它开始工作。 当我们不检查它们时,它仍然在工作。
IE8中的实际问题是什么?
也许这不是你正在寻找的,但我有一个类似的问题,我解决了它,包括JSON 2到我的应用程序:
https://github.com/douglascrockford/JSON-js
其他浏览器原生实现JSON,但IE <8(也IE 8兼容模式)不,这就是为什么你需要包括它。
这里有一个相关的问题: IE6上的JSON(IE7)
UPDATE
JSONparsing器已经更新,所以你应该使用新的: http : //bestiejs.github.io/json3/
<!DOCTYPE html>
否则IE8是不正确的。 你也应该使用:
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
请在您的项目中添加json2.js。 我遇到了同样的问题,我已经修复。
请使用链接: https : json.js
并创build新的文件json.js
,复制页面,并过去到新创build的文件,并将该文件移动到您的Web应用程序。
我希望这会起作用。
在您的JSON响应中检查额外的逗号。 如果一个数组的最后一个元素有一个逗号,这将在IE中破解
将内容types更改为“application / x-www-form-urlencoded”
我有这个错误2次。 每次通过改变ajaxtypes来解决它。 GET到POST或POST到GET。
$.ajax({ type:'GET', // or 'POST' url: "file.cfm?action=get_table&varb=" + varb });
我最近有同样的问题。 在我的情况下,在一个PHP脚本的顶部,我有一些代码generationg显然是一些额外的输出到浏览器。 删除空行(?>和html-tag之间)和简单的清理帮助我:
<?php include('../config.php'); // ob_clean(); ?> <!DOCTYPE html>