使用axios的qs处理含集合的请求参数,后端成功接收参数

背景:前几天用qs处理请求参数,没啥问题,后端接收的轻轻松松,今天遇到一个坑,qs直接处理list,后端根本接收不到,会提示请求参数不是list、map、array类型。

  1. 安装qs npm install qs,如果已经安装了axios的话,就不需要再安装了,直接引入import Qs from 'qs'
  2. qs有两种使用方式
//1. qs.parse()将URL解析成对象的形式
let url = 'userName=12212&pwd=123&token=120';
Qs.parse(url);
//处理后的结果{"userName": 12212, "pwd": 123, "token": 120}

//2. qs.stringify()将对象 序列化成URL的形式,以&进行拼接
let data = {"userName": 12212, "pwd": 123, "token": 120};
Qs.stringify(data)
//处理后结果 userName=12212&pwd=123&token=120
Qs.stringify({ a: ['b', 'c', 'd'] });
// 'a[0]=b&a[1]=c&a[2]=d'
Qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
// 'a=b&a=c&a=d'
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: [{"userName": 12212},{"pwd": 123}],{arrayFormat: 'indices', allowDots: true})
// a[0].userName=12212&a[0].pwd=123

我遇到问题就是请求参数的结构是{a,b,c,[{d,e},{f,g}]},使用前几种都无法让后端接收到参数,只有之后一种才符合要求,并发送成功。根据自己需要的参数格式,选择合适的qs。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值