以下的代码在除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);
});
}
});
答案 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错误。