问题
当我们需要通过get方式传递一个数组作为参数 tag:[1,2,3,4]
预期是解析为:https://www.cnblogs.com/enter?tag=1&tag=2&tag=3&tag=4
然而真相是这样的:https://www.cnblogs.com/enter?tag[]=1&tag[]=2&tag[]=3&tag[]=4
,后台是不可能解析到传递的参数。
解决方案
qs插件
安装插件
npm install qs
引入插件
import qs from "qs"
使用插件
1、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) // 输出结果:'a[0]=b&a[1]=c' 2、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) // 输出结果:'a[]=b&a[]=c' 3、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) // 输出结果:'a=b&a=c' 4、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' }) // 输出结果:'a=b,c'
axios配置
axios.interceptors.request.use(async (config) => { //只针对get方式进行序列化 if (config.method === 'get') { config.paramsSerializer = function(params) { return qs.stringify(params, { arrayFormat: 'repeat' }) } } }
参考:https://www.cnblogs.com/kingreatwill/p/12641238.html
标签:qs,arrayFormat,插件,get,stringify,tag,数组,请求 From: https://www.cnblogs.com/vickylinj/p/17026977.html