来自:http://my.oschina.net/quttap/blog/106442
最近在用jQuery的ajax方法发送请求时需要发送一个数组作为参数,结果在后台接收的时候发现接收不到这个数组。代码时这样的:
1 | var arr = [] |
2 | arr.push(“aaa”); |
3 | arr.push(“bbb”); |
4 | arr.push(“ccc”); |
5 | $.ajax({ |
6 | url:”a.html”, |
7 | data:{“arr”:arr}, |
8 | type:”post” |
9 | }); |
查看firebug的网络信息,发现发送的post信息中的数组信息为&arr[]=aaa&arr[]=bbb&arr[]=ccc。多了一对方括号,所以在servlet中不能通过request.getParameter(‘arr’)获取到正常的数组参数。
google之后发现,需要在data参数里,加一个traditional:true的参数,这样就能正常发送数组参数了。
原因时从1.4以后,jQuery改变了参数的序列化方法。