diff --git a/src/ajax.js b/src/ajax.js index 4f8fee6c..a16717b0 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -95,7 +95,7 @@ function addToPrefiltersOrTransports( structure ) { }; } -//Base inspection function for prefilters and transports +// Base inspection function for prefilters and transports function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, dataType /* internal */, inspected /* internal */ ) { @@ -389,6 +389,7 @@ jQuery.extend({ ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, + requestHeadersNames = {}, // Response headers responseHeadersString, responseHeaders, @@ -412,7 +413,9 @@ jQuery.extend({ // Caches the header setRequestHeader: function( name, value ) { if ( !state ) { - requestHeaders[ name.toLowerCase() ] = { n: name, v: value }; + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; } return this; }, diff --git a/src/ajax/xhr.js b/src/ajax/xhr.js index ba4c3ec7..5dbc33d3 100644 --- a/src/ajax/xhr.js +++ b/src/ajax/xhr.js @@ -104,7 +104,7 @@ if ( jQuery.support.ajax ) { // Need an extra try/catch for cross domain requests in Firefox 3 try { for ( i in headers ) { - xhr.setRequestHeader( headers[ i ].n, headers[ i ].v ); + xhr.setRequestHeader( i, headers[ i ] ); } } catch( _ ) {}