原因
按照默认的http get请求,如果请求参数是数组,不如参数codes 数组,值[“A”,“B”,“C”],那么按照http请求,传递get参数应该是 a[]=A&a[]=B&a[]=C,可问题是golang gin框架不支持这种,使用axios的默认的get请求,拼接这种参数,服务端gin无法接受成功。
解决办法
await axios.get('/your-api-url', {
params: {
codes: codes
}, paramsSerializer: params => {
return qs.stringify(params, {indices: false})
}
}).then((resp) => { console.log(resp)});
注意
这里一定要带参数 {indices:false},否则解出来的会是 a[0]=A&a[1]=B&a[2]=C。
如果带了这个参数,那么解出来的是 a=A&a=B&a=C,这样后端gin才可以读取到。
引入qs包的方法
npm i qs
博客内容讲述了在使用Golang的Gin框架时遇到的一个问题,即默认的Axios GET请求参数格式与Gin不兼容。当参数为数组时,Axios会默认生成如a[]=A&a[]=B&a[]=C的格式,而Gin框架无法正确解析。解决方法是在Axios的get请求中添加paramsSerializer参数,引入qs库并设置indices为false,使得参数格式变为a=A&a=B&a=C,从而让Gin可以正确读取。
1343

被折叠的 条评论
为什么被折叠?



