ajax传递array参数

var ticketId = new Array();
for(var i = 0; i < checkboxes.length; i++) {
  ticketId.push(checkboxes[i].value);
}
$.ajax({
  type:"POST",
  url:myURL,
  data: {
            "ticketId":ticketId
  }, 
  dataType: "json",
   success:function(data){}
});

在运行过程中,通过调试发现传递到服务器的参数不是ticketId,而全部变成了ticketId[],都多了个[],这让我感觉到很困扰,最终终于找到解决方法,就是为ajax添加一个参数traditional: true,即将代码改成

$.ajax({
       traditional: true,
    type:"POST",
    url:myURL,
    data: {
            "ticketId":ticketId
    }, 
    dataType: "json",
       success:function(data){}
});

这样传递的参数就是ticketId,是正确的,后台可以正常处理该参数传递的值了
traditional:将数据转化成序列化的字符串

原文地址:https://www.cnblogs.com/fengxm/p/6003789.html