vue-resource post请求参数为数组,请求失败!

首先,我的普通post请求,请求参数是单个数值或多个数值,都成功了

this.$http.post(myip.ip.selected + "user/updateInfo", { roleid: this.formRU.roleid, userids: this.formRU.userids }
    , { emulateJSON: true }
).then((response) => {})

一旦数值中包含数组,就会失败,后端返回500错误
先不要下定论认为是后端的错误

事情是这样的:这个项目之前写好了,但后来前端代码丢失,只剩下部署包,我照着原先的网站重写原代码;结果到需要给后端发送数组参数时,部署好的网站上请求成功,而我现在重写的请求失败;但通过对比两者在浏览器控制台的请求,发现只有一个区别,就是 Form Data

img


图中上面是成功发送的 Form Data,下面则会报错500

顺带一提,假如我把 emulateJSON: true 去掉,Form Data 还会变成 userids: [8,1,2] ,多了一对中括号

还有后端接收方法

@RequestMapping({"updateInfo"})
    public JsonResult updateRoleUsers(Integer roleid, int[] userids) {  }

后端应该是没有问题的,考虑怎样才能把 Form Data 的数组数据格式改成图中上半一样
总之这个问题搞得我头大,求各位(禁止使用以下词汇)支个招

先把数组改成字符串再传上去
const userids = userids.join(',')

img


你这参数名先改改

img

img

img


参数改为逗号分割的字符串
采纳下吧

前端可以使用push方法添加到一个数组里面,然后用join(“,”)方法分割