遇到这个问题真是难为死我了,后来问个一个大神,一下就是大神告诉我的

//直接传数组就变成了“list1[0][aa]=1&list1[0][bb]=2&list1[1][aa]=3&list1[1][bb]=4&list2[0][aa]=1&list2[0][bb]=2&list2[1][aa]=3&list2[1][bb]=4“,解决这个问题有两种方法

方法一 :用$.params(data,true);因为使用ajax请求数据时后台会在参数名后面加上[1],导致参数名和后台的不一样,所以

传数组时加上$.params(data,true)

方法二 : 使用traditional为true,防止深度序列化,traditional默认为false,即

traditional:true

 

$.ajax({
   type: "POST",
   url: url,

   traditional:true,//这句话必须
   data:{ gender:[0,1] },
   dataType: "json",
   async:false
  });