axios传递数组参数问题

axios传递数组参数问题

最近开发时,写批量删除功能时,发现我前端传的值,后端一直获取不了。查了半天才发现原因所在。

后来发现axios传不了数组参数,如果使用序列化库qs的话,那后端无法通过数组参数获取前端的值。

1
2
3
this.$qs.stringify({'ids':[1,2,3,4]}))
这样写的话产生的形式为:ids=1&ids=2&id=3&id=this.$qs.stringify({'ids':[1,2,3,4]}))
这样写的话产生的形式为:ids=1&ids=2&id=3&id=4
而我后端获取的是一个数组参数,显然不符合的。

所以想要在不改动后端参数形式的情况下,在前端应该这样修改:

1
2
3
this.$qs.stringify({'ids':[1,2,3,4]+''}))
拼接一个空的字符串,使整个value变成一个字符串,那么产生的形式就成为:
ids=this.$qs.stringify({'ids':[1,2,3,4]+''}))
拼接一个空的字符串,使整个value变成一个字符串,那么产生的形式就成为:
ids="[1,2,3,4]"

那么我后端就可以通过(Integer[] ids)来获取前端的值。


axios传递数组参数问题
https://evanyangtobegreatest.github.io/2022/09/02/axios传递数组参数问题/
作者
Evan
发布于
2022年9月2日
许可协议