cowboy/jquery-bbq — Issue #35: jQuery.param.querystring (build url) should use recursive merge (aka. deep copy).
Author: Asgaroth
Created: 2012-01-12 15:19:52+00:00
State: open

jQuery.param.querystring (build url) does not currently merge params acordinly when using array typed queryStrings

Assume an URL like this:

var url = "?Obj[attr1]=a&Obj[attr2]=b";

If we wish to merge a data object like

var data = { Obj : { attr3 : c } };

we (or me) would expect the result from jQuery.param.querystring (url, data) to be:

"?Obj[attr1]=a&Obj[attr2]=b&Obj[attr3]=c"

But instead we get:

"?Obj[attr3]=c"

This is because when calling $.extend on jquery.bb-bbq.js at line 281, simple, and not recursive, merge is used

To solve this, the line should look like:
: $.extend( true, {}, url_params, params ); // passed params override url params

which solves the issue and returns the expected url.