axios get方法传递数组

axios的get方法中使用params时对于js数组类型的参数的默认操作比较奇怪,会使得参数名后带上’[]'字符串,如下

axios get方法传递数组_第1张图片
但是console.log参数bizType,就是正常的[‘3’,‘4’,‘5’]
按照网上的写法,把数组json序列化
在这里插入图片描述
再查看参数,发现变成了这样
axios get方法传递数组_第2张图片
本来以为能解决问题,其实传递给后端的是’[“4”,“5”,“6”]’,后端说解析不了?‍♀️,于是再换其他解决办法,在request拦截器里面添加下面的代码

if(config.method === 'get'){
        //如果是get请求,且params是数组类型如arr=[1,2],则转换成arr=1&arr=2
        config.paramsSerializer = function(params) {
            return qs.stringify(params, {arrayFormat: 'repeat'})
        }

请求参数变成了下面这样:
在这里插入图片描述
Request URL:
在这里插入图片描述
修改完,后端可以正常接收数组类型~
附上参考文章:
https://segmentfault.com/q/1010000010323643

你可能感兴趣的:(JavaScript)