axios传递数组的方法
近日使用Vue的过程中发现一个请求传递数组的问题,在axios中文网.找到三种解决办法,下面列出本人实践过的两种方法:第一种:使用URLSearchParams API第二种:使用qs库编码数据使用URLSearchParams API:let params = new URLSearchParams()params.append('userId', user.id)params.ap...
·
近日使用Vue的过程中发现一个请求传递数组的问题,在axios中文网找到三种解决办法,下面列出本人实践过的两种方法:
第一种:使用URLSearchParams API
第二种:使用qs库编码数据
使用URLSearchParams API:
let params = new URLSearchParams()
params.append('userId', user.id)
params.append('roleIds', roleIds)
this.$axios.put('/users/user_role', params)
请求参数会变成:
userId=2&roleIds=2%2C1%2C3
后台直接用Long[] roleIds接受参数。
使用qs库编码数据
qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 不过axios 自带 qs ,这样可方便多了。
直接在Vue组件中引入qs
import qs from 'qs'
this.$axios.put('/users/user_role',
qs.stringify({
userId: user.id,
roleIds: roleIds
}, {indices: false})
)
qs.stringify()是将对象序列化成URL的形式,以&进行拼接。
这样请求参数变成了
userId=2&roleIds=2&roleIds=1&roleIds=3
其中 indices默认为true,表示拼接时给出明确索引,默认如下
userId=2&roleIds[0]=2&roleIds[1]=1&roleIds[2]=3
将indices设置为false的话,后台就能直接用Long[] roleIds接受参数。
更多推荐
已为社区贡献1条内容
所有评论(0)