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,
     "IsReports":true
    }
 }
我看到它说角色是15,但你只显示4.你编辑结果?
  好吧,这完全是我的不好。  我从jQuery 1.4.4升级到jQuery 1.6,并没有注意到我的页面在所有浏览器上实际上都有问题。 
  正如这个问题所描述的那样,问题出在验证插件上。 
  感谢所有花时间回答的人。 
上一篇: jquery + IE 7 & 8
