Re-adds hastily removed variable and simplifies statusCode based callbacks handling.

This commit is contained in:
jaubourg 2011-01-19 17:51:33 +01:00
parent 7947cd77e4
commit 3ea366401f

View file

@ -368,7 +368,12 @@ jQuery.extend({
// Stored success // Stored success
success, success,
// Stored error // Stored error
error; error,
// Keep track of statusCode callbacks
oldStatusCode = statusCode;
statusCode = undefined;
// If successful, handle type chaining // If successful, handle type chaining
if ( status >= 200 && status < 300 || status === 304 ) { if ( status >= 200 && status < 300 || status === 304 ) {
@ -410,6 +415,8 @@ jQuery.extend({
current, current,
// Previous dataType // Previous dataType
prev, prev,
// Conversion expression
conversion,
// Conversion function // Conversion function
conv, conv,
// Conversion functions (when text is used in-between) // Conversion functions (when text is used in-between)
@ -448,8 +455,8 @@ jQuery.extend({
if ( prev !== "*" && current !== "*" && prev !== current ) { if ( prev !== "*" && current !== "*" && prev !== current ) {
// Get the converter // Get the converter
conv = converters[ prev + " " + current ] || conversion = prev + " " + current;
converters[ "* " + current ]; conv = converters[ conversion ] || converters[ "* " + current ];
conv1 = conv2 = 0; conv1 = conv2 = 0;
@ -524,7 +531,7 @@ jQuery.extend({
} }
// Status-dependent callbacks // Status-dependent callbacks
jXHR.statusCode( statusCode ); jXHR.statusCode( oldStatusCode );
if ( s.global ) { if ( s.global ) {
globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ) , globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ) ,
@ -552,20 +559,14 @@ jQuery.extend({
// Status-dependent callbacks // Status-dependent callbacks
jXHR.statusCode = function( map ) { jXHR.statusCode = function( map ) {
if ( map ) { if ( map ) {
var resolved = jXHR.isResolved(), var tmp;
tmp; if ( statusCode ) {
if ( resolved || jXHR.isRejected() ) {
tmp = map[ jXHR.status ];
if ( tmp ) {
if ( map === statusCode ) {
delete statusCode[ jXHR.status ];
}
jXHR[ resolved ? "done" : "fail" ]( tmp );
}
} else {
for( tmp in map ) { for( tmp in map ) {
statusCode[ tmp ] = [ statusCode[ tmp ] , map[ tmp ] ]; statusCode[ tmp ] = [ statusCode[ tmp ] , map[ tmp ] ];
} }
} else {
tmp = map[ jXHR.status ];
jXHR.done( tmp ).fail( tmp );
} }
} }
return this; return this;