当前位置: 首页 > 面试题库 >

使用 jQuery 中止 Ajax 请求

袁玮
2023-03-14
问题内容

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


问题答案:

大多数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是正确的。



 类似资料:
  • 问题内容: 使用jQuery,如何 取消/中止 尚未收到响应 的Ajax请求 ? 问题答案: 大多数jQuery Ajax方法都返回XMLHttpRequest(或等效的)对象,因此您可以使用。 请参阅文档: abort Method (MSDN).取消当前的HTTP请求。 abort()(MDN)。如果请求已经发送,则此方法将中止请求。 var xhr = $.ajax({ type: “POS

  • 问题内容: 我正在使用JSONP ajax调用从其他域加载某些内容,并且如果用户在按钮上造成“ mouseover”,则将执行所有这些操作。 我可以将$ .ajax()调用return捕获为xhr对象,并在用户每次导致“ mouseover”时使用它中止ajax请求。但是仍然会调用JSONP回调函数,这会导致错误,并且我认为这是因为xhr.abort()方法不会阻止调用回调函数。 我尝试用try

  • 问题内容: 我有一个AJAX请求,将每5秒发送一次。但是问题出在AJAX请求之前,如果先前的请求没有完成,我必须中止该请求并提出新的请求。 我的代码是这样的,如何解决这个问题? 问题答案: jQuery ajax方法返回一个XMLHttpRequest对象。您可以使用此对象取消请求。 XMLHttpRequest具有中止方法,该方法会取消请求,但是如果请求已经发送到服务器,那么即使我们中止请求 ,

  • 本文向大家介绍jQuery实现ajax的叠加和停止(终止ajax请求),包括了jQuery实现ajax的叠加和停止(终止ajax请求)的使用技巧和注意事项,需要的朋友参考一下 jQuery实现ajax的叠加和停止的关键代码如下所示: 以上所述是小编给大家介绍的jQuery实现ajax的叠加和停止(终止ajax请求),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常

  • 问题 你想要通过 AJAX 来从你的服务器加载数据,而不使用 jQuery 库。 解决方案 你将使用本地的 XMLHttpRequest 对象。 通过一个按钮来打开一个简单的测试 HTML 页面。 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>XMLHttpRequest Teste

  • 问题内容: 以下逻辑用于在我们支持的所有移动设备上同时使用jquery 1.4.4和1.7.1: 但是在iOS 5.0.1中,上面的代码输入了错误功能警报,而没有任何实际的HTTP请求。在我需要重新启动iPhone之前,似乎只有一个AJAX请求可以工作。这是已知的jquery / iOS 5.0问题吗?我该如何调试?有什么解决方法吗?我不知道从哪里开始寻找。 注意 :我注意到在服务器端,发出请求而