jquery ajax responseText在ie9中不起作用

时间:2012-06-23 03:58:58

标签: jquery ajax

以下的代码在除IE之外的所有内容中都很有效。在IE中,data.responseText的警报是未定义的。但在所有其他浏览器中,它会返回正确的数据。

我错过了什么?它适用于Firefox,Chrome,Safari等。

如果我将data.responseText更改为仅数据,我会获得[object Object]

$.ajax({
    type: "POST",
    url: "",
    data: "command=loadComments&id=" + song_id,
    dataType: "html",
    complete: function(data) {
        loading.fadeOut('slow');

        $("#comments-list").fadeIn('slow', function() {
            $("#comments-list").html(data.responseText);
            alert(data.responseText);
        });
    }
});

2 个答案:

答案 0 :(得分:1)

您可以尝试使用.complete()功能代替.success()

<强> CODE

   success: function(data){
        loading.fadeOut('slow');
        $("#comments-list").fadeIn('slow', function() {
            $("#comments-list").html(data.responseText);
            alert(data.responseText);
        });
    }

来自jQuery doc:

  

成功(data,textStatus,jqXHR)

     

请求成功时要调用的函数。该函数传递三个参数:数据   从服务器返回,根据dataType格式化   参数;描述状态的字符串;和jqXHR(在jQuery中   1.4.x,XMLHttpRequest)对象。

  

完成(jqXHR,textStatus)

     

请求完成时要调用的函数(成功后和   执行错误回调)。该函数传递两个参数:   jqXHR(在jQuery 1.4.x,XMLHTTPRequest中)对象和一个字符串   对请求的状态进行分类(“成功”,“未修改”,   “错误”,“超时”,“中止”或“parsererror”)。

答案 1 :(得分:1)

使用success,原因可能是它在IE中引发错误。还要添加error回调以检查问题所在。例如,文本编码是AJAX调用中常见的IE错误。