I currently have the following javascript array:
var stuffs = ['a', 'b'];
I pass the above to the server code using jQuery's load
:
var data = {
'stuffs': stuffs
};
$(".output").load("/my-server-code/", data, function() {
});
On the server side, if I print the content of request.POST
(I'm currently using Django), I get:
'stuffs[]': [u'a', u'b']
Notice the []
at the prefix of the variable name stuffs
. Is there a way to remove that []
before it reaches the server code?
This is default behavior in jQuery 1.4+...if you want the post to be &stuffs=a&stuffs=b
instead of &stuffs[]=a&stuffs[]=b
you should set the traditional
option to true
, like this:
$.ajaxSetup({traditional: true});
Note this affects all requests... which is usually what you want in this case. If you want it to be per-request you should use the longer $.ajax()
call and set traditional: true
there. You can find more info about traditional
in the $.param()
documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With