Fixes #7881. Setting contentType to false will prevent the Content-Type header from being sent. Unit test added.
This commit is contained in:
parent
98c6c4b2b0
commit
69497c3fd7
|
@ -559,7 +559,7 @@ jQuery.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the correct header, if data is being sent
|
// Set the correct header, if data is being sent
|
||||||
if ( ( s.data && s.hasContent ) || options.contentType ) {
|
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
|
||||||
requestHeaders[ "content-type" ] = s.contentType;
|
requestHeaders[ "content-type" ] = s.contentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,11 @@ $headers = array();
|
||||||
|
|
||||||
foreach( $_SERVER as $key => $value ) {
|
foreach( $_SERVER as $key => $value ) {
|
||||||
|
|
||||||
if ( substr( $key , 0 , 5 ) == "HTTP_" ) {
|
$key = str_replace( "_" , "-" , substr( $key , 0 , 5 ) == "HTTP_" ? substr( $key , 5 ) : $key );
|
||||||
|
|
||||||
$key = str_replace( "_" , "-" , substr( $key , 5) );
|
|
||||||
$headers[ $key ] = $value;
|
$headers[ $key ] = $value;
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach( explode( "_" , $_GET[ "keys" ] ) as $key ) {
|
foreach( explode( "_" , $_GET[ "keys" ] ) as $key ) {
|
||||||
echo "$key: " . $headers[ strtoupper( $key ) ] . "\n";
|
echo "$key: " . @$headers[ strtoupper( $key ) ] . "\n";
|
||||||
}
|
}
|
||||||
|
|
|
@ -276,6 +276,42 @@ test(".ajax() - headers" , function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test(".ajax() - contentType" , function() {
|
||||||
|
|
||||||
|
expect( 2 );
|
||||||
|
|
||||||
|
stop();
|
||||||
|
|
||||||
|
var count = 2;
|
||||||
|
|
||||||
|
function restart() {
|
||||||
|
if ( ! --count ) {
|
||||||
|
start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jQuery.ajax(url("data/headers.php?keys=content-type" ), {
|
||||||
|
contentType: "test",
|
||||||
|
success: function( data ) {
|
||||||
|
strictEqual( data , "content-type: test\n" , "Test content-type is sent when options.contentType is set" );
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
restart();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery.ajax(url("data/headers.php?keys=content-type" ), {
|
||||||
|
contentType: false,
|
||||||
|
success: function( data ) {
|
||||||
|
strictEqual( data , "content-type: \n" , "Test content-type is not sent when options.contentType===false" );
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
restart();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
test(".ajax() - hash", function() {
|
test(".ajax() - hash", function() {
|
||||||
expect(3);
|
expect(3);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue