"JSON"是Internet Explorer中JavaScript中的未定义错误

ash*_*ram 50 javascript jquery internet-explorer json

我们在我们的应用程序中使用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
Run Code Online (Sandbox Code Playgroud)

`

两种情况下的Internet Explorer版本都是相同的.

但是,取消选中Internet选项中"高级"选项卡中的" 使用SSL3.0"和" 启用智能屏幕过滤​​器"复选框等Internet Explorer设置存在一些差异.

当我们检查它时,它开始工作.当我们取消选中它们时,它仍在工作.

IE8中的实际问题是什么?

Dal*_*len 67

也许它不是你想要的,但我有一个类似的问题,我解决了它,包括JSON 2到我的应用程序:

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

其他浏览器本身实现JSON,但IE <8(也是IE 8兼容模式)没有,这就是你需要包含它的原因.

这是一个相关的问题:IE6上的JSON(IE7)

UPDATE

JSON解析器已更新,因此您应该使用新的解析器:http://bestiejs.github.io/json3/

  • 如果你遇到同样的问题,你会发现他在IE7或IE8兼容模式下 (3认同)

mar*_*ere 20

<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

否则IE8表现不正常.你也应该使用:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
Run Code Online (Sandbox Code Playgroud)

  • @ D-Mac你的意思是IE <9.jQuery并没有完全放弃对IE的支持. (2认同)

小智 7

请在您的项目中添加json2.js.我遇到了我修复过的同样问题.

请使用以下链接:https://raw.github.com/douglascrockford/JSON-js/master/json2.js 并创建新文件json.js,将页面和过去复制到新创建的文件中,然后将该文件移动到您的Web应用程序中.

我希望它能奏效.


Ale*_*lex 6

检查JSON响应中的额外逗号.如果数组的最后一个元素有一个逗号,这将在IE中中断