首先,我的普通post请求,请求参数是单个数值或多个数值,都成功了
this.$http.post(myip.ip.selected + "user/updateInfo", { roleid: this.formRU.roleid, userids: this.formRU.userids }
, { emulateJSON: true }
).then((response) => {})
一旦数值中包含数组,就会失败,后端返回500错误
先不要下定论认为是后端的错误
事情是这样的:这个项目之前写好了,但后来前端代码丢失,只剩下部署包,我照着原先的网站重写原代码;结果到需要给后端发送数组参数时,部署好的网站上请求成功,而我现在重写的请求失败;但通过对比两者在浏览器控制台的请求,发现只有一个区别,就是 Form Data
图中上面是成功发送的 Form Data,下面则会报错500
顺带一提,假如我把 emulateJSON: true 去掉,Form Data 还会变成 userids: [8,1,2] ,多了一对中括号
还有后端接收方法
@RequestMapping({"updateInfo"})
public JsonResult updateRoleUsers(Integer roleid, int[] userids) { }
后端应该是没有问题的,考虑怎样才能把 Form Data 的数组数据格式改成图中上半一样
总之这个问题搞得我头大,求各位(禁止使用以下词汇)支个招