jQuery AJAX成功处理程序无法按预期运行

时间:2011-01-26 11:26:31

标签: jquery internet-explorer

我遇到了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语句的完整处理程序作为解决方法,但这不是一个非常好的主意。关于如何正确解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试过保留dataType,然后使用jQuery的.parseJSON()(http://api.jquery.com/jQuery.parseJSON/)?通过这种方式,您将能够看到响应中是否存在错误。