From: John Resig Date: Sat, 16 Apr 2011 16:12:53 +0000 (-0700) Subject: Backing out fix for #6481. X-Git-Tag: 1.6rc1~16 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ce7b311b9227e86d7f03c002cbaf1796f8086059;p=jquery.git Backing out fix for #6481. --- diff --git a/src/ajax.js b/src/ajax.js index 3048068d0..2a1076391 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -772,7 +772,7 @@ jQuery.extend({ }); function buildParams( prefix, obj, traditional, add ) { - if ( jQuery.isArray( obj ) && obj.length ) { + if ( jQuery.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { @@ -792,16 +792,9 @@ function buildParams( prefix, obj, traditional, add ) { }); } else if ( !traditional && obj != null && typeof obj === "object" ) { - // If we see an array here, it is empty and should be treated as an empty - // object - if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) { - add( prefix, "" ); - // Serialize object item. - } else { - for ( var name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } + for ( var name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); } } else { diff --git a/test/unit/ajax.js b/test/unit/ajax.js index ac1dc73b1..a8a5fa0d7 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -946,7 +946,7 @@ test("serialize()", function() { }); test("jQuery.param()", function() { - expect(24); + expect(21); equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" ); @@ -976,11 +976,6 @@ test("jQuery.param()", function() { equals( decodeURIComponent( jQuery.param({ a: [1,2,3], "b[]": [4,5,6], "c[d]": [7,8,9], e: { f: [10], g: [11,12], h: 13 } }) ), "a[]=1&a[]=2&a[]=3&b[]=4&b[]=5&b[]=6&c[d][]=7&c[d][]=8&c[d][]=9&e[f][]=10&e[g][]=11&e[g][]=12&e[h]=13", "Make sure params are not double-encoded." ); - // Make sure empty arrays and objects are handled #6481 - equals( jQuery.param({"foo": {"bar": []} }), "foo%5Bbar%5D=", "Empty array param" ); - equals( jQuery.param({"foo": {"bar": [], foo: 1} }), "foo%5Bbar%5D=&foo%5Bfoo%5D=1", "Empty array param" ); - equals( jQuery.param({"foo": {"bar": {}} }), "foo%5Bbar%5D=", "Empty object param" ); - // #7945 equals( jQuery.param({"jquery": "1.4.2"}), "jquery=1.4.2", "Check that object with a jQuery property get serialized correctly" ); @@ -2259,4 +2254,4 @@ test("jQuery.ajax - active counter", function() { } -//} \ No newline at end of file +//}