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

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

我有一个问题,当提交表单时,所有活动的Ajax请求都会失败,这会触发错误事件。

如何在没有琐碎错误事件的情况下停止jQuery中的所有活动Ajax请求?


元芳怎么了
浏览 868回答 3
3回答

慕莱坞森

每次创建Ajax请求时,都可以使用一个变量来存储它:var request = $.ajax({     type: 'POST',     url: 'someurl',     success: function(result){}});然后,您可以中止请求:request.abort();您可以使用一个数组来跟踪所有挂起的Ajax请求,并在必要时中止它们。

波斯汪

下面的代码段允许您维护一个列表(水池)请求,并在需要时中止所有请求。最好放在<HEAD>你的html,以前进行任何其他Ajax调用。<script&nbsp;type="text/javascript"> &nbsp;&nbsp;&nbsp;&nbsp;$(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.xhrPool&nbsp;=&nbsp;[]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.xhrPool.abortAll&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).each(function(i,&nbsp;jqXHR)&nbsp;{&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;cycle&nbsp;through&nbsp;list&nbsp;of&nbsp;recorded&nbsp;connection &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jqXHR.abort();&nbsp;&nbsp;//&nbsp;&nbsp;aborts&nbsp;connection &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.xhrPool.splice(i,&nbsp;1);&nbsp;//&nbsp;&nbsp;removes&nbsp;from&nbsp;list&nbsp;by&nbsp;index &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajaxSetup({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beforeSend:&nbsp;function(jqXHR)&nbsp;{&nbsp;$.xhrPool.push(jqXHR);&nbsp;},&nbsp;//&nbsp;&nbsp;annd&nbsp;connection&nbsp;to&nbsp;list &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;complete:&nbsp;function(jqXHR)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i&nbsp;=&nbsp;$.xhrPool.indexOf(jqXHR);&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;get&nbsp;index&nbsp;for&nbsp;current&nbsp;connection&nbsp;completed &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;>&nbsp;-1)&nbsp;$.xhrPool.splice(i,&nbsp;1);&nbsp;//&nbsp;&nbsp;removes&nbsp;from&nbsp;list&nbsp;by&nbsp;index &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;})</script>
打开App,查看更多内容
随时随地看视频慕课网APP