aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjaubourg <j@ubourg.net>2012-04-02 02:04:46 +0200
committerjaubourg <j@ubourg.net>2012-04-02 02:04:46 +0200
commit914df9cb42219200a0286d15e0f45a9994b8ab3d (patch)
tree2552e603e65ae0e025b9b6b3b71e84e2bef2d775
parent395612bb152660226b93f7f096cd0146fc06991e (diff)
downloadjquery-914df9cb42219200a0286d15e0f45a9994b8ab3d.tar.gz
jquery-914df9cb42219200a0286d15e0f45a9994b8ab3d.zip
For much improved consistency, jqXHR.abort() sets a default statusText of 'canceled' right until after beforeSend has been called (in which case it reverts to the default of 'abort'): now all early aborts have a statusText of 'canceled'.
-rw-r--r--src/ajax.js12
-rw-r--r--test/unit/ajax.js4
2 files changed, 10 insertions, 6 deletions
diff --git a/src/ajax.js b/src/ajax.js
index ca9b63322..9aa715cd2 100644
--- a/src/ajax.js
+++ b/src/ajax.js
@@ -426,6 +426,8 @@ jQuery.extend({
fireGlobals,
// Loop variable
i,
+ // Default abort message
+ strAbort = "canceled",
// Fake xhr
jqXHR = {
@@ -471,7 +473,7 @@ jQuery.extend({
// Cancel the request
abort: function( statusText ) {
- statusText = statusText || "abort";
+ statusText = statusText || strAbort;
if ( transport ) {
transport.abort( statusText );
}
@@ -716,12 +718,14 @@ jQuery.extend({
// Allow custom headers/mimetypes and early abort
if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
- // Abort if not done already
- done( 0, "canceled" );
- return jqXHR;
+ // Abort if not done already and return
+ return jqXHR.abort();
}
+ // aborting is no longer a cancelation
+ strAbort = "abort";
+
// Install callbacks on deferreds
for ( i in { success: 1, error: 1, complete: 1 } ) {
jqXHR[ i ]( s[ i ] );
diff --git a/test/unit/ajax.js b/test/unit/ajax.js
index 431f14094..963bcae7a 100644
--- a/test/unit/ajax.js
+++ b/test/unit/ajax.js
@@ -895,7 +895,7 @@ test("jQuery.ajax - beforeSend, cancel request manually", function() {
ok( false, "request didn't get canceled" );
}
}).fail(function( _, reason ) {
- strictEqual( reason, "abort", "manually canceled request must fail with 'abort' status text" );
+ strictEqual( reason, "canceled", "manually canceled request must fail with 'canceled' status text" );
});
});
@@ -2324,7 +2324,7 @@ test("jQuery.ajax - abort in prefilter", function() {
ok( false, "error callback called" );
}
}).fail(function( _, reason ) {
- strictEqual( reason, 'abort', "Request aborted by the prefilter must fail with 'abort' status text" );
+ strictEqual( reason, 'canceled', "Request aborted by the prefilter must fail with 'canceled' status text" );
});
});