Commit 8f8961de authored by jaubourg's avatar jaubourg

Reformats logic for early abort in beforeSend to limit block imbrication.

parent 03bad0a9
...@@ -667,50 +667,49 @@ jQuery.extend({ ...@@ -667,50 +667,49 @@ jQuery.extend({
// Allow custom headers/mimetypes and early abort // Allow custom headers/mimetypes and early abort
if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
// Abort if not done already // Abort if not done already
done( 0, "abort" ); jqXHR.abort();
// Return false return false;
jqXHR = false;
} else { }
// Install callbacks on deferreds // Install callbacks on deferreds
for ( i in { success: 1, error: 1, complete: 1 } ) { for ( i in { success: 1, error: 1, complete: 1 } ) {
jqXHR[ i ]( s[ i ] ); jqXHR[ i ]( s[ i ] );
} }
// Get transport // Get transport
transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
// If no transport, we auto-abort // If no transport, we auto-abort
if ( !transport ) { if ( !transport ) {
done( -1, "No Transport" ); done( -1, "No Transport" );
} else { } else {
// Set state as sending // Set state as sending
state = jqXHR.readyState = 1; state = jqXHR.readyState = 1;
// Send global event // Send global event
if ( fireGlobals ) { if ( fireGlobals ) {
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
} }
// Timeout // Timeout
if ( s.async && s.timeout > 0 ) { if ( s.async && s.timeout > 0 ) {
timeoutTimer = setTimeout( function(){ timeoutTimer = setTimeout( function(){
jqXHR.abort( "timeout" ); jqXHR.abort( "timeout" );
}, s.timeout ); }, s.timeout );
} }
try { try {
transport.send( requestHeaders, done ); transport.send( requestHeaders, done );
} catch (e) { } catch (e) {
// Propagate exception as error if not done // Propagate exception as error if not done
if ( status < 2 ) { if ( status < 2 ) {
done( -1, e ); done( -1, e );
// Simply rethrow otherwise // Simply rethrow otherwise
} else { } else {
jQuery.error( e ); jQuery.error( e );
}
} }
} }
} }
return jqXHR; return jqXHR;
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment