Fixes a bug that prevented headers from being set in an ajaxSend callback. Unit test modified.

This commit is contained in:
jaubourg 2011-02-07 16:35:32 +01:00
parent 0c21c83e96
commit a2dbdc1f54
2 changed files with 14 additions and 7 deletions

View file

@ -684,8 +684,7 @@ jQuery.extend({
if ( !transport ) {
done( -1, "No Transport" );
} else {
// Set state as sending
state = jqXHR.readyState = 1;
jqXHR.readyState = 1;
// Send global event
if ( fireGlobals ) {
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
@ -698,6 +697,7 @@ jQuery.extend({
}
try {
state = 1;
transport.send( requestHeaders, done );
} catch (e) {
// Propagate exception as error if not done

View file

@ -348,10 +348,14 @@ test(".ajax() - headers" , function() {
stop();
jQuery('#foo').ajaxSend(function( evt, xhr ) {
xhr.setRequestHeader( "ajax-send", "test" );
});
var requestHeaders = {
siMPle: "value",
"SometHing-elsE": "other value",
OthEr: "something else"
siMPle: "value",
"SometHing-elsE": "other value",
OthEr: "something else"
},
list = [],
i;
@ -359,22 +363,25 @@ test(".ajax() - headers" , function() {
for( i in requestHeaders ) {
list.push( i );
}
list.push( "ajax-send" );
jQuery.ajax(url("data/headers.php?keys="+list.join( "_" ) ), {
headers: requestHeaders,
success: function( data , _ , xhr ) {
var tmp = [];
for ( i in requestHeaders ) {
tmp.push( i , ": " , requestHeaders[ i ] , "\n" );
}
tmp.push( "ajax-send: test\n" );
tmp = tmp.join( "" );
equals( data , tmp , "Headers were sent" );
equals( xhr.getResponseHeader( "Sample-Header" ) , "Hello World" , "Sample header received" );
start();
},
error: function(){ ok(false, "error"); }
});
}).then( start, start );
});