JQuery 传递数组到后台后台 后台接收不到参数


//创建数组
var ids = [];
ids .push(1);
ids .push(2);
ids .push(3);
//向后台交互
$.ajax({
  url: "/xxx",
  type: "POST",
  data: {
    "ids ": ids 
  },
  success: function(data) {
    //do sth...
  }
});

后台接口

 public ActionResult Test(Array ids) { }

浏览器ajax请求参数成为了  ids[]

在ajax请求添加‘traditional: true’   

默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架, 
但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化,

//创建数组
var ids = [];
ids .push(1);
ids .push(2);
ids .push(3);
//向后台交互
$.ajax({
  url: "/xxx",
  type: "POST",
  data: {
    "ids ": ids 
  },
  traditional: true,//这里设置为true
  success: function(data) {
    //do sth...
  }
});

此时查看ajax请求参数,就是想要实现的效果了