</div>
</div>
<div class="grid--cell mb0 mt4">
<a href="/questions/446594/abort-ajax-requests-using-jquery" dir="ltr">Abort Ajax requests using jQuery</a>
<span class="question-originals-answer-count">
(17 answers)
</span>
</div>
<div class="grid--cell mb0 mt8">Closed <span title="2013-05-31 13:16:39Z" class="relativetime">6 years ago</span>.</div>
</div>
</aside>
I am planning on implementing a series of jQuery AJAX calls in my website and would like to develop a function to abort an AJAX call. How can I do this? I read this link already but it doesn't work for me.
</div>
You need to assign your ajax request to variable,
var xhr = $.ajax({
***
});
then call abort()
xhr.abort();
In a single use of AJAX it is simple. The XMLHttpRequest has a abort method, which cancels the request.
// creating our request
xhr = $.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
// aborting the request
xhr.abort();
The xhr object also contains a readystate which contains the state of the request(UNSENT - 0, OPENED - 1, HEADERS_RECEIVED - 2, LOADING - 3 and DONE - 4). So we can use this to check whether the previous request was completed.
// abort function with check readystate
function abortAjax(xhr) {
if(xhr && xhr.readystate != 4){
xhr.abort();
}
}
// this function usage
abortAjax(xhr);