how to stop jquery ajax request sent via $.get?

2020-06-09 07:07发布

i am making a ajax request using $.get as soon as the user types a character in the input box i want to abort the previous ajax calls and then make the new one, is there a way?

edit

solved!

i just found out that $.get is a shorthand way to $.ajax and hence it returns a XHR and so we can call abort on that variable.

1条回答
ら.Afraid
2楼-- · 2020-06-09 07:36

You can use .abort() on XMLHttpRequest that $.get returns.

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

//Abort request
req.abort()

From jQuery.ajax() documentation:

The $.ajax() function returns the XMLHttpRequest object that it creates. Normally jQuery handles the creation of this object internally, but a custom function for manufacturing one can be specified using the xhr option. The returned object can generally be discarded, but does provide a lower-level interface for observing and manipulating the request. In particular, calling .abort() on the object will halt the request before it completes.

More on .abort(): XMLHttpRequest.abort()

There is also jQuery plugin AjaxQueue for handling multiple Ajax request made in parallel.

查看更多
登录 后发表回答