发送请求的时候如何将Request Payload转换为Form Data格式

发送请求的时候如何将Request Payload转换为Form Data格式

一、问题描述

最近做项目遇到了一个问题,前端利用封装好的axios发一个请求给后端,请求可以发送成功,但拿不到正确的数据,在swagger上测试接口拿到的数据和在chorme控制台测试拿到的数据不一样,通过仔细比较,发现控制台payload下一个是Form Data,另一个是Request Payload,所以我想问题就在这里。

如下图,正确的方式
在这里插入图片描述
错误的方式
在这里插入图片描述
再看一下有问题的代码,只列举主要地方

看一下封装的接口请求函数
在这里插入图片描述
看一下,请求时传的参数
在这里插入图片描述

二、问题解决

那么既然知道了问题所在,现在就是想办法将Request Payload转换为Form Data格式

解决办法就是加一个headers: { "content-type": "application/x-www-form-urlencoded" },

在这里插入图片描述
然后现在看一下,控制台payload显示什么
在这里插入图片描述
好了,已经变成Form Data格式了,但是仔细观察,现在这样的情况,传的参数使用对象包裹着的,而正确的做法是不用对象包裹,如图
在这里插入图片描述

那么接受下来就是想办法,不用对象包裹,解决办法是,不能常规的封装成一个对象作为参数传进去,而是必须要Form Data格式的数据了,使用formData包裹数据

正确的代码如下
在这里插入图片描述
现在再看一下payload下的内容
在这里插入图片描述
现在这样的结果就和swagger上测试的一模一样了,并且拿到的数据也是正确的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值