ajax传递array参数

因为一个功能,向后台传递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:将数据转化成序列化的字符串
 
posted @ 2014-11-20 13:33  minxinfeng  阅读(234)  评论(0编辑  收藏  举报