X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fajax%2Fxhr.js;h=b18274c437eff9488880ee2672960effe60ae5b4;hb=d6fbbe1080fdcaf8eb22753eddf000aeb7d99545;hp=97db07951d6b8b653f53e8dd5d56114caf3f616d;hpb=ee22a59129e082a2bb9f5bc0b085191ab6faafc8;p=jquery.git diff --git a/src/ajax/xhr.js b/src/ajax/xhr.js index 97db079..b18274c 100644 --- a/src/ajax/xhr.js +++ b/src/ajax/xhr.js @@ -23,11 +23,7 @@ var // Next active xhr id xhrUnloadAbortInstalled, // XHR used to determine supports properties - testXHR, - - // Keep track of isLocal in case it gets removed - // from ajaxSettings later on - protocolIsLocal = jQuery.ajaxSettings.isLocal; + testXHR; // Create the request object // (This is still attached to ajaxSettings for backward compatibility) @@ -38,12 +34,9 @@ jQuery.ajaxSettings.xhr = window.ActiveXObject ? * Additionally XMLHttpRequest can be disabled in IE7/IE8 so * we need a fallback. */ - ( protocolIsLocal ? - createActiveXHR : - function() { - return createStandardXHR() || createActiveXHR(); - } - ) : + function() { + return !this.isLocal && createStandardXHR() || createActiveXHR(); + } : // For all other browsers, use the standard XMLHttpRequest object createStandardXHR; @@ -185,6 +178,12 @@ if ( jQuery.support.ajax ) { // IE - #1450: sometimes returns 1223 when it should be 204 if ( status === 1223 ) { status = 204; + // Various - #8177: a Not Modified response was received + // yet no conditional request headers was provided + } else if ( status === 304 && + !headers[ "if-modified-since" ] && + !headers[ "if-none-match" ] ) { + status = 200; // Status 0 encompasses several cases } else if ( !status ) { // Cross-domain @@ -196,7 +195,7 @@ if ( jQuery.support.ajax ) { status = 302; } // All same-domain: for local files, 0 is a success - } else if( protocolIsLocal ) { + } else if( s.isLocal ) { status = 200; // Opera: this notifies success for all requests // (verified in 11.01). Patch welcome.