From 3ea366401f461cd670c5472ddbb3ad7f3260d13c Mon Sep 17 00:00:00 2001 From: jaubourg Date: Wed, 19 Jan 2011 17:51:33 +0100 Subject: [PATCH] Re-adds hastily removed variable and simplifies statusCode based callbacks handling. --- src/ajax.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index 7229899b..9173d8a8 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -368,7 +368,12 @@ jQuery.extend({ // Stored success success, // Stored error - error; + error, + + // Keep track of statusCode callbacks + oldStatusCode = statusCode; + + statusCode = undefined; // If successful, handle type chaining if ( status >= 200 && status < 300 || status === 304 ) { @@ -410,6 +415,8 @@ jQuery.extend({ current, // Previous dataType prev, + // Conversion expression + conversion, // Conversion function conv, // Conversion functions (when text is used in-between) @@ -448,8 +455,8 @@ jQuery.extend({ if ( prev !== "*" && current !== "*" && prev !== current ) { // Get the converter - conv = converters[ prev + " " + current ] || - converters[ "* " + current ]; + conversion = prev + " " + current; + conv = converters[ conversion ] || converters[ "* " + current ]; conv1 = conv2 = 0; @@ -524,7 +531,7 @@ jQuery.extend({ } // Status-dependent callbacks - jXHR.statusCode( statusCode ); + jXHR.statusCode( oldStatusCode ); if ( s.global ) { globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ) , @@ -552,20 +559,14 @@ jQuery.extend({ // Status-dependent callbacks jXHR.statusCode = function( map ) { if ( map ) { - var resolved = jXHR.isResolved(), - tmp; - if ( resolved || jXHR.isRejected() ) { - tmp = map[ jXHR.status ]; - if ( tmp ) { - if ( map === statusCode ) { - delete statusCode[ jXHR.status ]; - } - jXHR[ resolved ? "done" : "fail" ]( tmp ); - } - } else { + var tmp; + if ( statusCode ) { for( tmp in map ) { statusCode[ tmp ] = [ statusCode[ tmp ] , map[ tmp ] ]; } + } else { + tmp = map[ jXHR.status ]; + jXHR.done( tmp ).fail( tmp ); } } return this;