使用jQuery取消Ajax请求
大多数的jQuery Ajax方法返回一个XMLHttpRequest(或等同对象),所以你可以使用abort()
。
请查看文档:
var xhr = $.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); } }); //kill the request xhr.abort()
更新:
自jQuery 1.5起,返回对象是一个称为jqXHR的本地XMLHttpRequest对象的包装器。此对象似乎公开了所有本地属性和方法,因此上面的示例仍然适用。请参见jqXHR对象(jQuery API文档)。
更新2:
自jQuery 3起,ajax方法现在返回一个带有额外方法(如abort)的promise,所以上述代码仍然适用,虽然返回的对象不再是xhr
。请查看此处的3.0博客。
更新3:xhr.abort()
在jQuery 3.x上仍然有效。不要认为更新2是正确的。请参见jQuery GitHub存储库上的更多信息。