axios 数组对象_解决axios在接口中传递数组,数组里面存放json对象的问题

问题描述

平常在二次封装axios的时候会引用QS这个插件来对参数进行序列化,在Java后端来讲,用表单格式来接收数据比较常见,对于前端就是说Content-Type的值为application/x-www-form-urlencoded,然后我们在post请求的时候会用QS.stringify(params)进行json序列化,这个时候问题来了,在传数组并且数组元素为JOSN对象的时候出错了,你会发现你传过去的数据格式形如这样子的

{

a: 1,

b[0][c]: 1

b[0][d]: 2

}

这种格式后端接口是不能解析的。因为后端需要的格式是这样子的:

{

a: 1,

b[0].c: 1

b[0].d: 2

}

解决办法

QS.stringify(params,{allowDots: true})

关于QS.stringify,特意查看了下源码

interface IStringifyOptions {

delimiter?: string;

strictNullHandling?: boolean;

skipNulls?: boolean;

encode?: boolean;

encoder?: (str: any, defaultEncoder: defaultEncoder, charset: string, type: 'key' | 'value') => string;

filter?: Array | ((prefix: string, value: any) =&g

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值