当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收.
比如:
$.ajax({
type: "POST",
url: url,
data:{ gender:[0,1] },
dataType: "json",
async:false
});
这里有个查询性别的gender数组.
用火狐的firebug查看post数据的时候,如果jquery版本过高会发现gender按以下类型提交
schGender[] 1
schGender[] 0
也就是说它把数组里面的每个元素都当成了数组了. 这样传到后台就会报错了.
解决办法是换低版本的jquery,我这里换成1.3.2就没问题了(不推荐). 之后再查看POST数据就是:
schGender 1
schGender 0
最好的解决办法是添加一个属性
traditional:true
$.ajax({
type: "POST",
url: url,
traditional:true,
data:{ gender:[0,1] },
dataType: "json",
async:false
});
本文详细介绍了使用jQuery AJAX提交数组参数时出现的问题,即数组被当作多个独立参数提交导致后台解析失败的情况。通过更换jQuery版本至1.3.2或添加traditional属性,可以解决此问题,确保数组参数正确传递。
3万+

被折叠的 条评论
为什么被折叠?



