IT评测·应用市场-qidao123.com技术社区

标题: 解决:axios 请求头url传参数组时发生400错误 [打印本页]

作者: 篮之新喜    时间: 2024-9-8 13:39
标题: 解决:axios 请求头url传参数组时发生400错误
一、媒介



二、缘故原由

   RFC3986:除了 数字 + 字母 + -_.~ 不会被转义,其他字符都会被以百分号(%)后跟两位十六进制数 %{hex} 的方式进行转义
  
三、解决方案


  1. // 解决数组url传参时参数带'[]'问题
  2. paramsSerializer: function (params) {
  3.     return qs.stringify(params, { arrayFormat: "repeat" });
  4. },
复制代码


四、qs 的常用 arrayFormat 参数

   qs地址:https://github.com/ljharb/qs
  qs镜像中文地址:https://gitcode.com/gh_mirrors/qs/qs/overview?utm_source=csdn_github_accelerator&isLogin=1
  1. qs.stringify({ a: ['b', 'c', 'd'] });  
  2. // 数组字符串化遵循 arrayFormat 选项,默认为 indices:
  3. // 结果为 'a[0]=b&a[1]=c&a[2]=d'
复制代码
  1. qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
  2. // 结果为 'a=b&a=c&a=d'
复制代码
  1. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
  2. // 结果为 'a[0]=b&a[1]=c'
复制代码
  1. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
  2. // 结果为 'a[]=b&a[]=c'
复制代码
  1. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
  2. // 结果为 'a=b&a=c'
复制代码
  1. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
  2. // 结果为 'a=b,c'
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4