对来自ajax请求的任何数据执行操作

时间:2011-01-18 13:16:42

标签: jquery

是否可以通过ajax捕获来自服务器的任何内容? 我知道ajaxComplete()会在某些ajax工作完成时触发

我想,例如。

alert(whichever content came from the server as a result for $.ajax, $.post, $.get)

1 个答案:

答案 0 :(得分:3)

jQuery.ajaxComplete应该做得很好。

$(document).ajaxComplete(function(event, XHR, ajaxOptions) {
    var resp = XHR.responseText 
                ? XHR.responseText 
                : (XHR.responseHTML
                    ? XHR.responseHTML
                    : XHR.responseXML);
    alert(resp);
});

文档说响应将在XHR.responseHTMLXHR.responseXML,但我怀疑后者可能是一个错字,因为我的实证测试显示出现的两个成员是XHR.responseTextXHR.responseHTML

但话说回来,我的测试并不详尽,并没有考虑到服务器返回的mime类型,所以不要相信我的话,因为我可能会非常错误。

这个例子也公然忽略了返回的状态代码,绝不应该作为一个好的例子,仅作为一个可能的起点。

查看ugly running demo