diff options
author | Sam Bisbee <sam@sbisbee.com> | 2011-04-15 16:36:43 -0400 |
---|---|---|
committer | Sam Bisbee <sam@sbisbee.com> | 2011-04-15 16:36:43 -0400 |
commit | a9a79ccc6e5a3630c9925c267763591236597bcb (patch) | |
tree | d13494def91b1ee1dc8c4c1271d392305ad5c555 /src/ajax.js | |
parent | 35d9425969be95c110bb16b650d3fbe7e122c1db (diff) | |
download | jquery-a9a79ccc6e5a3630c9925c267763591236597bcb.tar.gz jquery-a9a79ccc6e5a3630c9925c267763591236597bcb.zip |
Continuing to map request headers using their name in uppercase for the index, but we now map to an object with an unmodified name and value: { name: "", value: "" }. This prevents overwriting of the user's supplied headers, which many applications parse with case sensitivity, because we no longer use the modified, uppercase index when building the request.
Diffstat (limited to 'src/ajax.js')
-rw-r--r-- | src/ajax.js | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/ajax.js b/src/ajax.js index f0d722845..05b0a1605 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -416,7 +416,7 @@ jQuery.extend({ // Caches the header setRequestHeader: function( name, value ) { if ( !state ) { - requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value; + requestHeaders[ name.toUpperCase().replace( rucHeaders, rucHeadersFunc ) ] = { name: name, value: value}; } return this; }, @@ -664,24 +664,27 @@ jQuery.extend({ // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - requestHeaders[ "Content-Type" ] = s.contentType; + jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { ifModifiedKey = ifModifiedKey || s.url; if ( jQuery.lastModified[ ifModifiedKey ] ) { - requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); } if ( jQuery.etag[ ifModifiedKey ] ) { - requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); } } // Set the Accepts header for the server, depending on the dataType - requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : - s.accepts[ "*" ]; + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : + s.accepts[ "*" ] + ); // Check for headers option for ( i in s.headers ) { |