jquery + IE 7&8

我有几个非常简单的使用jQuery的AJAX调用。
我的c#webmethods被标记为[ScriptMethod(ResponseFormat = ResponseFormat.Json)]并返回格式正确的JSON。
这在FF中效果很好,但在IE上疯狂:
调用错误处理程序,其中response status = 200 (!!), responseText是我想要获得的有效JSON,而statusText"parsererror"

我在SO上看到了一个地方(似乎无法再次发现它),问题在于IE需要xml格式的响应,并在其他任何地方抛出解析器异常。
建议的解决方案基本上是使用错误处理程序作为成功处理程序:

$.ajax(
            {
                url: "SampleScriptService.asmx/Function",
                type: "POST",
                data: {},
                contentType: "application/json;",
                dataType: "json",
                success: function (result) {
                    SuccesFunction(result.d);
                },
                error: function (e) {
                    if (e.status != 200) {
                        alert("this is a real error");
                    }
                    SuccesFunction(JSON.parse(e.responseText).d);
                }
            });

这对我来说似乎很难受。 有谁知道任何其他解决方案?
ps我已经尝试过的东西:这些,这里,所有的解决方案在这里建议

UPDATE
不确定它是否相关,但IE也给了这个奇怪的错误 -

Expected ';' Line: 101139813 Char: 5 Code: 0 URI: http://localhost/sample/samplePage.htm

不用说,我的htm文件包含~100行。
如果我不做ajax调用(因此 - 上述错误处理程序未被调用),则不会显示此错误。


如果这只发生在IE上,那么这是因为您的回复中存在拼写错误。 请显示您从服务器获得的json。 你有一个对象,最后一个项目有一个逗号逗号。

喜欢这个

 { "l1" : 1, "l2" : 2, }

看看这是如何结束的, } ? 它只需要以}结束。

只是为了确认,json看起来像这样没有周围"

 {"d":
    {"__type":"PresentationObjects.UserPO",
     "Username":"admin",
     "FullName":"Admin User",
     "Password":"",
     "Roles":15,
     "UserRolesStrings": ["monitor","reports","schedule"­,"administration"],
     "IsAdministrator":true,
     "IsMonitor":true,
     "IsSchedule":true,
     "IsR­eports":true
    }
 }

我看到它说角色是15,但你只显示4.你编辑结果?


好吧,这完全是我的不好。 我从jQuery 1.4.4升级到jQuery 1.6,并没有注意到我的页面在所有浏览器上实际上都有问题。
正如这个问题所描述的那样,问题出在验证插件上。
感谢所有花时间回答的人。

链接地址: http://www.djcxy.com/p/46101.html

上一篇: jquery + IE 7 & 8

下一篇: ajax is sent but callback function is ignored