如何停止通过$ .get发送的jquery ajax请求?

Sha*_*eer 14 javascript ajax jquery

一旦用户在输入框中键入一个字符,我想使用$ .get制作一个ajax请求我想中止之前的ajax调用,然后创建新的ajax,是否有办法?

编辑

解决了!

我刚刚发现$ .get是$ .ajax的简写方式,因此它返回一个XHR,因此我们可以在该变量上调用abort.

小智 28

您可以.abort()$.get返回的XMLHttpRequest上使用.

var req = $.get('ajax/test.html', function(data) {
            $('.result').html(data);
            alert('Load was performed.');
          });

//Abort request
req.abort()
Run Code Online (Sandbox Code Playgroud)

来自jQuery.ajax()文档:

$ .ajax()函数返回它创建的XMLHttpRequest对象.通常,jQuery在内部处理此对象的创建,但可以使用xhr选项指定用于制造该对象的自定义函数.返回的对象通常可以被丢弃,但确实提供了一个用于观察和操作请求的低级接口.特别是,在对象上调用.abort()将在请求完成之前暂停该请求.

更多信息.abort():XMLHttpRequest.abort()

还有jQuery插件AjaxQueue用于处理并行发出的多个Ajax请求.