| 7335 | }; |
| 7336 | |
| 7337 | function buildParams( prefix, obj, traditional, add ) { |
| 7338 | var name; |
| 7339 | |
| 7340 | if ( jQuery.isArray( obj ) ) { |
| 7341 | // Serialize array item. |
| 7342 | jQuery.each( obj, function( i, v ) { |
| 7343 | if ( traditional || rbracket.test( prefix ) ) { |
| 7344 | // Treat each array item as a scalar. |
| 7345 | add( prefix, v ); |
| 7346 | |
| 7347 | } else { |
| 7348 | // Item is non-scalar (array or object), encode its numeric index. |
| 7349 | buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); |
| 7350 | } |
| 7351 | }); |
| 7352 | |
| 7353 | } else if ( !traditional && jQuery.type( obj ) === "object" ) { |
| 7354 | // Serialize object item. |
| 7355 | for ( name in obj ) { |
| 7356 | buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); |
| 7357 | } |
| 7358 | |
| 7359 | } else { |
| 7360 | // Serialize scalar item. |
| 7361 | add( prefix, obj ); |
| 7362 | } |
| 7363 | } |
| 7364 | var |
| 7365 | // Document location |
| 7366 | ajaxLocParts, |