jQuery Ajax post 数组到后端

jquery ajax怎么可以直接传数组数据到后端?还是不能啊。每次我传数组比如{test:[1,2,3]}到后台服务器,test会变成test[],导致后端无法拿到数据,请求指点,谢谢大家。

$.ajax({
   method: "POST",
   url: uri,
   dataType: "json",
   contentType: 'application/x-www-form-urlencoded',
   data: {test:[1,2,3]},
   processData: false,
   headers: {
       'X-Auth-Token': token
  }
}
阅读 10.6k
4 个回答

方法一

$.param(data, true);

方法二

更简单,ajax的时候加上traditional: true。

$.ajax({
      url:"xxxx",
      traditional: true,
      data:{test:[1,2,3]} 
})

感谢kikong的回答,已经找到解决的办法;在传送之前调用$.param(data, true);就可以了。

你可以吧数组拼接成字符串传到后台。
例如[1,2,3].join(',');

有两种选择。

一种是JSON.stringify([1,2,3]),到后端再解析。

另外一种是后端的接受的contentType改成application/json

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进