jquery ajax: support for dynamic data arguments, see #2806; added test/data/echoQuery.php for easier testing of sent query strings

This commit is contained in:
Jörn Zaefferer 2008-05-06 22:21:43 +00:00
parent 1753ab3d82
commit 46931d3146
3 changed files with 18 additions and 1 deletions

View file

@ -489,7 +489,7 @@ jQuery.extend({
s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
});
else
s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) );
s.push( encodeURIComponent(j) + "=" + encodeURIComponent( jQuery.isFunction(a[j]) ? a[j]() : a[j] ) );
// Return the resulting serialization
return s.join("&").replace(/%20/g, "+");

1
test/data/echoQuery.php Normal file
View file

@ -0,0 +1 @@
<?php echo $_SERVER['QUERY_STRING']; ?>

View file

@ -811,6 +811,22 @@ test("custom timeout does not set error message when timeout occurs, see #970",
});
});
test("data option: evaluate function values (#2806)", function() {
stop();
$.ajax({
url: "data/echoQuery.php",
data: {
key: function() {
return "value";
}
},
success: function(result) {
equals( result, "key=value" );
start();
}
})
});
}
//}