我遇到了jQuery和IE的一个非常奇怪的问题。我正在使用jQuery 1.4.4和IE8。我尝试用AJAX调用:
$.ajax({
url: '/events/do_something',
dataType: 'json',
data : params,
beforeSend : function() {
setPageStateLoading(true);
},
success : function(data){
doSomethingElse(data, false);
},
error : function(XMLHttpRequest) {
openErrorDialog(XMLHttpRequest.responseText);
},
complete : function(XMLHttpRequest, textStatus) {
setPageStateLoading(false);
}
});
虽然请求成功,但由于解析错误而调用错误处理程序。返回的JSON没有问题(它在Firefox上完美运行),问题是jQuery中的第6229行:
var ct = xhr.getResponseHeader("content-type") || "",
哪个失败,“对象不支持此属性或方法”并导致解析错误。
现在我正在使用带有if语句的完整处理程序作为解决方法,但这不是一个非常好的主意。关于如何正确解决这个问题的任何想法?
答案 0 :(得分:1)
您是否尝试过保留dataType,然后使用jQuery的.parseJSON()(http://api.jquery.com/jQuery.parseJSON/)?通过这种方式,您将能够看到响应中是否存在错误。