小编典典

使用 jQuery 中止 Ajax 请求

jQuery Ajax

是否有可能使用jQuery 取消/中止尚未收到响应的Ajax请求?


阅读 351

收藏
2020-08-04

共1个答案

小编典典

大多数jQuery Ajax方法都返回XMLHttpRequest(或等效的)对象,因此您可以使用abort()。

请参阅文档:

  • 中止方法 (MSDN)。取消当前的HTTP请求。
  • abort()(MDN)。如果请求已经发送,则此方法将中止请求。
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对象的包装。该对象似乎公开了所有本机属性和方法,因此上面的示例仍然有效。

更新2: 从jQuery 3开始,ajax方法现在返回带有其他方法的promise(例如abort),因此上面的代码仍然有效,尽管返回的对象不再可用xhr。在此处查看3.0博客。

更新3:xhr.abort()仍然适用于jQuery3.x。不要以为更新2是正确的。

2020-08-04