This plugin allows you to easily retry a failed ajax request while still allowing you to add callbacks via any of the normal options or deferreds. jQuery.ajaxRetry is supported on all version of jQuery from 1.5 - latest.
- Boolean
If you set this to
true
, your request will be retried until it successfully completes. Be careful you don't DOS yourself here.
$.ajax({
shouldRetry: true
});
- Number You can provide a simple number and the request will be retried that many times.
$.ajax({
// Retry this request up to 2 times
shouldRetry: 2
});
- Function
Passing a function is the most flexible and powerful way to handle your retries. A retry will occur if your function returns
true
, or if it returns apromise
that resolves totrue
.
$.ajax({
shouldRetry: function( jqXHR, retryCount, requestMethod ) {
// Retry only if the request method is POST and we have not retried this request yet.
return requestMethod === "POST" && retryCount === 0;
}
});
$.ajax({
shouldRetry: function() {
// Always retry this request with a delay of 250ms between retries
return $.Deferred(function(dfr) {
setTimeout(function() {
dfr.resolve(true);
}, 250);
}).promise();
}
});
Copyright (c) 2014 Daniel Herman, contributors Licensed under the MIT license.