jQuery 1.9.1错误 - 发生在IE但不是Chrome

时间:2013-04-08 00:39:02

标签: jquery internet-explorer-9

我有一个MVC 4应用程序,其中包含一个包含多个字段集的表单的视图。当我在Chrome中发布此表单时,它会毫无错误地保存。在IE 10.0.92中,我在以下jQuery方法中出错。抛出错误的行有一个箭头。这大致是538行。我已经确定在Chrome中执行时甚至不会调用此方法。

parseJSON: function (data) {
    // Attempt to parse using the native JSON parser first
    if (window.JSON && window.JSON.parse) {
-->        return window.JSON.parse(data);

    }

    if (data === null) {
        return data;
    }

    if (typeof data === "string") {

        // Make sure leading/trailing whitespace is removed (IE can't handle it)
        data = jQuery.trim(data);

        if (data) {
            // Make sure the incoming data is actual JSON
            // Logic borrowed from http://json.org/json2.js
            if (rvalidchars.test(data.replace(rvalidescape, "@")
                .replace(rvalidtokens, "]")
                .replace(rvalidbraces, ""))) {

                return (new Function("return " + data))();
            }
        }
    }

    jQuery.error("Invalid JSON: " + data);
},

我得到的错误如下:

enter image description here

我对“数据”的价值做了警告,我得到了一个未定义的。我对jQuery或JavaScript没有太多经验。如果需要更多信息,我很乐意提供。

经过一些进一步的测试后,这一变化似乎解决了这个问题,但我不确定这是正确的方法:

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

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

    }

1 个答案:

答案 0 :(得分:1)

使用Microsoft.jQuery.Unobtrusive.Validation nuget包更新jquery.validate.unobtrusive.js文件,其版本为2.0.30506.0 然后这个错误已经解决了。