当用$.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

});