vue中axios请求payload的暴力解决方案

在Vue项目中,由于axios默认使用JSON格式发送payload,导致后台接口无法正确接收参数。本文介绍了作者在处理此类问题时的三种方法:1) 改变params格式;2) 更改content-type为'application/x-www-form-urlencoded';3) 使用原生Ajax封装。在处理包含数组的复杂JSON时,原生Ajax成为最后的解决办法。
摘要由CSDN通过智能技术生成

  去年公司做了一个小程序商城项目,运营了一段时间决定再次开发一个H5商城,用于微信好友之间的分享以及app内的嵌套,于是便开了一个vue项目,接口大多都是复用小程序的。

  在做项目的过程中本人遇到一个由axios导致的问题——后台接口拿不到请求的参数。因为接口都是之前写好的,并且小程序运行正常,便没有去让后台查看,决定自己找出解决方案。打开浏览器查看参数发现axios的参数是这样子的。

  首先我解释下我们这个奇葩的参数。(其实网上有两种解决方案,但是由于这个参数,那两种方案都不能使用,我才不得不使用第三种暴力解决方案,下面会讲到。)我们的这个接口的参数goodsId的值是一个json字符串,该json里的key表示店铺id,而值则是一个数组,数组里面是商品id与数量的键值对。这种方法很奇葩,但是当时脑子抽了和后台一拍板就这么定了,现在想改也晚了。

  那么想找出问题,我就要知道这个请求与小程序请求有什么不同,于是打开小程序,可以看到如下图。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值