mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Fix #10466. jQuery.param() should treat object-wrapped primitives as primitives.
This commit is contained in:
parent
6c2a501de4
commit
166b9d252a
@ -818,7 +818,7 @@ function buildParams( prefix, obj, traditional, add ) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if ( !traditional && obj != null && typeof obj === "object" ) {
|
} else if ( !traditional && jQuery.isPlainObject( obj ) ) {
|
||||||
// Serialize object item.
|
// Serialize object item.
|
||||||
for ( var name in obj ) {
|
for ( var name in obj ) {
|
||||||
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
|
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
|
||||||
|
@ -1031,6 +1031,19 @@ test("jQuery.param()", function() {
|
|||||||
equal( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" );
|
equal( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" );
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("jQuery.param() Constructed prop values", function() {
|
||||||
|
expect(3);
|
||||||
|
|
||||||
|
var params = {"test": new String("foo") };
|
||||||
|
equal( jQuery.param( params, false ), "test=foo", "Do not mistake new String() for a plain object" );
|
||||||
|
|
||||||
|
params = {"test": new Number(5) };
|
||||||
|
equal( jQuery.param( params, false ), "test=5", "Do not mistake new Number() for a plain object" );
|
||||||
|
|
||||||
|
params = {"test": new Date() };
|
||||||
|
ok( jQuery.param( params, false ), "(Non empty string returned) Do not mistake new Date() for a plain object" );
|
||||||
|
});
|
||||||
|
|
||||||
test("synchronous request", function() {
|
test("synchronous request", function() {
|
||||||
expect(1);
|
expect(1);
|
||||||
ok( /^{ "data"/.test( jQuery.ajax({url: url("data/json_obj.js"), dataType: "text", async: false}).responseText ), "check returned text" );
|
ok( /^{ "data"/.test( jQuery.ajax({url: url("data/json_obj.js"), dataType: "text", async: false}).responseText ), "check returned text" );
|
||||||
|
Loading…
Reference in New Issue
Block a user