Alex Rivera | Logout

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

Asked 2010-11-12T10:50:37.373
14

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.

Edit
Report

1 Answer

30

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.

answered 2010-11-12T11:08:01.430

Your Answer