axios 的 get 请求传递数组参数

 使用 qs 库 ( 请先执行 yarn add qs ) 结合 axios 自带的 paramsSerializer 方法序列化参数:

import axios from 'axios';
import qs from 'qs';

const instance = axios.create({
  baseURL,
  timeout: 30000,
  withCredentials: true,
});

instance({
  method,
  url,
  params, // url 参数
  paramsSerializer: params => qs.stringify(params, { arrayFormat: 'comma' }),
})

qs.stringify 支持转换成以下四种格式, 后台只需要用 Array 接收对应参数就可以了

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })  // 'a[0]=b&a[1]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) // 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })   // 'a=b&a=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })    // 'a=b,c'

参考:

axios中文文档|axios中文网#请求配置#paramsSerializer

qs库使用指南#数组解析和序列化

猜你喜欢

转载自blog.csdn.net/baobao_123456789/article/details/116024220