您的位置:首页 > Web前端 > JQuery

jQuery的ajax()、post()方法提交数组,参数[] 问题

2016-01-12 15:54 766 查看
当用$.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
});

OR

jQuery.ajaxSettings.traditional = true;

$.post(url,function(){

});

转载: http://blog.csdn.net/thc1987/article/details/7278269
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: