vue使用axios的post提交方式,参数为数组

做项目时,axios提交post请求 ,控制台报错,看图

意思大概就是我们url不能解析,没有序列化吧也就是,当然不能发送成功。这是我写的url

Axios.post('/api/order/create?token=' + token + '&goodsJsonStr=' + shopping
      ).then(res => {
        console.log(res);
      })

 url 中的shopping为一个数组 

let shopping = [
        {
          'goodsId': id,
          'goodsName': basicInfo.name,
          'number': num,
          'originalPrice': basicInfo.originalPrice,
          'propertyChildIds': guigecc.id + ':' + guigec.id ,
          'logisticsType':0
        },
        {
          'goodsId': id,
          'goodsName': basicInfo.name,
          'number': num,
          'originalPrice': basicInfo.originalPrice,
          'propertyChildIds': guigecc.id + ':' + guigec.id ,
          'logisticsType':0
        }
    ]

  在查阅各种资料,各种文档后发现qs对参数进行序列化方式是最方便的.

其中qs模块是一件封装进axios模块里了。我们直接在需要的地方引用就可以了

import Qs from 'qs'

开始用的是JSON.stringify(),这个是众所周知的对象类型转换为字符串,然而在url中并没有很好的和原先的拼接;而qs.stringify()将对象 序列化成URL的形式,以&进行拼接。JSON是正常类型的JSON,请对比一下输出

例如:

var a = {name:'hehe',age:10};
 qs.stringify(a)
// 'name=hehe&age=10'
JSON.stringify(a)
// '{"name":"hehe","age":10}'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值