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

时间:2010-11-12 10:50:37

标签: jquery ajax javascript

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

修改

解决!

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

1 个答案:

答案 0 :(得分:27)

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

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

//Abort request
req.abort()

来自jQuery.ajax()文档:

  

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

有关.abort()的更多信息:XMLHttpRequest.abort()

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

相关问题