Permalink
Browse files

Ajax: Fix for request aborted in ajaxSend

Fixes gh-1775
Close gh-1619
  • Loading branch information...
Dan Hart authored and timmywil committed Jul 13, 2014
1 parent 2a3018c commit 73c1ceaf4280bd0318679c1ad832181f3f449814
Showing with 23 additions and 0 deletions.
  1. +6 −0 src/ajax.js
  2. +17 −0 test/unit/ajax.js
View
@@ -644,6 +644,12 @@ jQuery.extend({
if ( fireGlobals ) {
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
}
// If request was aborted inside ajaxSend, stop there
if ( state === 2 ) {
return jqXHR;
}
// Timeout
if ( s.async && s.timeout > 0 ) {
timeoutTimer = setTimeout(function() {
View
@@ -435,6 +435,23 @@ module( "ajax", {
};
});
ajaxTest( "#15160 - jQuery.ajax() - request manually aborted in ajaxSend", 3, {
setup: function() {
jQuery( document ).on( "ajaxSend", function( e, jqXHR ) {
jqXHR.abort();
});
jQuery( document ).on( "ajaxError ajaxComplete", function( e, jqXHR ) {
equal( jqXHR.statusText, "abort", "jqXHR.statusText equals abort on global ajaxComplete and ajaxError events" );
});
},
url: url("data/name.html"),
error: true,
complete: function() {
ok( true, "complete" );
}
});
ajaxTest( "jQuery.ajax() - context modification", 1, {
url: url("data/name.html"),
context: {},

0 comments on commit 73c1cea

Please sign in to comment.