Aborting a jQuery getJSON XMLHttpRequest

Gordon Guthrie picture Gordon Guthrie · Aug 17, 2009 · Viewed 9.2k times · Source

Turns out this was an artefact of a Firebug bug. The Ajax request was cancelled, but Firebug continued reporting it as active. Details here.


I have long running XMLHttpRequests and I need to be able to abort them under certain circumstances.

I set up the request in a normal way:

ajax = $.getJSON(url + "?updates", function(data) { ...; });

Later on I want to abort this request, seems straightforward:

ajax.abort();

When I look in Firebug however, I see it is still running...

I console.log out the value of ajax just before I try and abort it, it confirms that its value is and XMLHttpRequest (with a readyState of 0).

Are there restrictions on how and when abort() fires on an XMLHttpRequest?

Answer

Niko picture Niko · Aug 17, 2009

Calling abort resets the object; the onreadystatechange event handler is removed, and readyState is changed to 0 (uninitialized).

i do not think it cancels the request itself, it just ignores any response (manipulating the event handler)- but i didnt really try it out yet.

but it will deifnitely allow you to reuse the object - no matter if the browser still has some thread working with the old request.