为了账号安全,请及时绑定邮箱和手机立即绑定

停止jQuery中的所有活动Ajax请求

停止jQuery中的所有活动Ajax请求

元芳怎么了 2019-07-11 15:01:24
停止jQuery中的所有活动Ajax请求我有一个问题,当提交表单时,所有活动的Ajax请求都会失败,这会触发错误事件。如何在没有琐碎错误事件的情况下停止jQuery中的所有活动Ajax请求?
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

每次创建Ajax请求时,都可以使用一个变量来存储它:

var request = $.ajax({
    type: 'POST',
    url: 'someurl',
    success: function(result){}});

然后,您可以中止请求:

request.abort();

您可以使用一个数组来跟踪所有挂起的Ajax请求,并在必要时中止它们。


查看完整回答
反对 回复 2019-07-11
?
波斯汪

TA贡献1811条经验 获得超4个赞

下面的代码段允许您维护一个列表(水池)请求,并在需要时中止所有请求。最好放在<HEAD>你的html,以前进行任何其他Ajax调用。

<script type="text/javascript">
    $(function() {
        $.xhrPool = [];
        $.xhrPool.abortAll = function() {
            $(this).each(function(i, jqXHR) {   //  cycle through list of recorded connection
                jqXHR.abort();  //  aborts connection
                $.xhrPool.splice(i, 1); //  removes from list by index
            });
        }
        $.ajaxSetup({
            beforeSend: function(jqXHR) { $.xhrPool.push(jqXHR); }, //  annd connection to list
            complete: function(jqXHR) {
                var i = $.xhrPool.indexOf(jqXHR);   //  get index for current connection completed
                if (i > -1) $.xhrPool.splice(i, 1); //  removes from list by index
            }
        });
    })</script>


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 867 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信