Internet Explorer 9提供了parseJSON错误

时间:2013-03-09 07:44:36

标签: jquery json internet-explorer-9 jquery-1.9

我不知道它是由jQuery还是我的脚本引起的。这是Internet Explorer 9给出错误的地方:

parseJSON: function( data ) {
    // Attempt to parse using the native JSON parser first
    if ( window.JSON && window.JSON.parse ) {
        return window.JSON.parse( data ); <<< this the "Invalid Character" err.
    }

这是我的javascript代码

http://jsfiddle.net/fNPwh

从我的研究中我还检查了我的DOCTYPE。他们在谈论Quirks模式,所以我也尝试放x-ua-compatible但没有改变

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" > <!-- IE9 mode -->
blabla

为什么ie9会给出jQuery的无效字符错误?而不是firefox或webkit。哦,就像我使用jQuery 1.9.1。

1 个答案:

答案 0 :(得分:1)

这似乎是jQuery库中的一个错误。 This post包含为修补程序添加/修改的代码。基本上只需在尝试解析之前移动null的检查并添加undefined的检查。那么方法的开头应该是这样的......

parseJSON: function( data ) {
    if (data === undefined) {
        return data;
    }
    if (data === null) {
        return data;
    }

    // Attempt to parse using the native JSON parser first
    if ( window.JSON && window.JSON.parse ) {
        return window.JSON.parse( data );
    }
...

我已在IE10和Chrome中验证过此修复程序。