大多数 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 存储库的更多信息 。
这是一个异步请求,意味着一旦它被发送到那里。
如果您的服务器由于 AJAX 请求而开始非常昂贵的操作,您可以做的最好是打开您的服务器以侦听取消请求,并发送单独的 AJAX 请求,通知服务器停止它正在做的任何事情。
否则,只需忽略 AJAX 响应。