【问题标题】:0x800a1391 - JavaScript runtime error: 'JSON' is undefined in IE 100x800a1391 - JavaScript 运行时错误:“JSON”在 IE 10 中未定义
【发布时间】:2013-02-27 21:21:32
【问题描述】:

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

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

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

另外,奇怪的是托管在 IIS 8 中的相同代码在 IE 10 浏览器中运行良好。 有输入吗?

【问题讨论】:

  • 这不是您的问题的答案,但我只想补充一点,当您使用 IE 浏览器时,您不应该依赖它将对象转换为 JSON 或 JSON 转换为对象。我建议使用一些其他的 JS 库来执行诸如 json2.js 之类的功能。
  • 我的标记中有 标记,但在我取消选择 IE 10 工具菜单中的兼容性视图之前一直收到错误。
  • 是的,我相信这是预期的行为,因为根据答案,JSON 只能在标准模式下工作。

标签: json visual-studio-2012 internet-explorer-10 iis-8


【解决方案1】:

IE8 及以上only have standards mode 中的JSON 对象。所以你需要确保文档有一个doctype。

【讨论】:

  • 谢谢,这似乎是答案......当我检查 IE 10 有它并且 IE 10 兼容性没有它时。 IE 10 有 而 IE 10 兼容性有 ...不知道为什么它被评论了 ....
  • @RameezAhmedSayad:IE10 肯定有JSON。同样,它仅在标准模式下可用。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    你需要包含 json2.js

    json2 inclusion

    了解更多详情。在某些情况下,我们必须处理客户使用 IE7 标准的情况。所以我们的代码也必须迎合这种情况。我们的零售网站可供数百名使用 IE7 标准的客户访问。包含 json2 解决了这个问题

    【讨论】:

      【解决方案4】:

      我发现是 IE 10 兼容性的 Intranet 设置导致我的 Intranet 网站出现此异常:

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

      要更改此标志,或者只是禁用它,请在 IE 10 中显示“命令栏”,然后选择“工具”>“兼容性查看设置”并取消选中该选项 - 倒数第二个。立即修复问题。

      【讨论】:

      • DOCTYPE 的翻译其实是一样的,可以说都是隐式的
      猜你喜欢
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多