2013-03-12 86 views
9

我在Windows 8上使用IE 10兼容性, 在调试模式(VS 2012)中运行WebApp时出现此错误。 0x800a1391 - JavaScript的运行时错误:“JSON”未定义下面0x800a1391 - JavaScript运行时错误:'JSON'在IE 10中未定义

var data = JSON.stringify(GetUserDetails()); 

function GetUserDetails() { 
    var userData = {}; 
    userData.userName = $('#txtUserName').val(); 
    userData.password = $('#txtPassword').val(); 
    return userData; 
} 

代码此外,奇怪的事实是IIS 8托管在同一代码运行在IE浏览器10的罚款。 有没有输入?

+0

这不回答你的问题,但我只是想补充一点,当你面对的IE浏览器,你不应该依赖它来转换对象JSON或JSON反对。我建议使用一些其他的JS库来完成像[json2.js](https://github.com/douglascrockford/JSON-js)这样的功能。 – 2013-03-12 11:51:20

+2

我的标记中有<!DOCTYPE html>标记,但继续收到错误,直到我在IE 10工具菜单中取消选择兼容性视图。 – MDA 2013-06-26 13:56:36

+0

是的,我相信这是预期的行为,因为根据答案,JSON只能在标准模式下工作。 – 2013-06-27 09:02:51

回答

7

IE8以上only haveJSON对象standards mode。所以你需要确保文档有一个文档类型。

+1

谢谢,这看起来是答案...当我检查IE 10有它和IE 10兼容性没有它。 IE 10有像<! - DOCTYPE html - >,而IE 10兼容性有<!DOCTYPE html PUBLIC“”> ...不知道为什么它被评论.... – 2013-03-12 18:04:32

+0

@RameezAhmedSayad:IE10肯定有'JSON' 。同样,它仅在标准模式下可用。 – 2013-03-12 18:05:00

+0

是的,你是正确的Crowder – 2013-03-12 18:08:12

0

我尝试使用Visual Studio 2010开发Web服务器运行ASP .NET应用程序时,运行Windows 8和IE 10时,出现了“JavaScript运行时错误... JSON未定义”。当我打开浏览器时,点击“Alt”显示菜单,然后点击工具 - >兼容性视图设置,并取消选中“在兼容性视图中显示所有网站”,我停止收到错误。

1

您需要包括json2.js

看到json2 inclusion

了解更多详情。有些情况下我们必须处理客户使用IE7标准的情况。所以我们的代码也不得不迎合这种情况。我们的零售网站被数百个使用IE7标准的客户访问。包括json2解决了这个问题

3

我发现对我来说,这是这是提出这个例外我的Intranet站点的IE 10兼容的局域网设置:

“显示在兼容性视图中的Intranet站点”

要改变此标志,或者只是简单地禁用它,显示IE 10的“命令栏”,再选择“工具”>“兼容性视图设置“并取消选中 - 从底部开始第二个选项。立即解决问题。

enter image description here

+0

DOCTYPE实际上翻译相同,你可以说这两个都是隐含的 – 2013-12-09 05:52:22

相关问题