失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 解决axios的post请求发送form格式数据 后台接收不到问题

解决axios的post请求发送form格式数据 后台接收不到问题

时间:2023-06-14 02:28:20

相关推荐

解决axios的post请求发送form格式数据 后台接收不到问题

问题描述

在开发工作中遇到这样一个问题,后端接口定义的接口的格式为post,但是请求方式为form格式,先设置header中的Content-Type为application/x-www-form-urlencoded,并且在network中看到传参格式为form,但是后端接收到的数据却为空。

解决过程

请求发送后,我打开控制台一看,content-type,然后也是form data,没问题呀,妥妥的form格式传参呀,但是后台就是接收不到数据,我一度怀疑是后台键名是不是写错了,但是用postman测接口一点毛病都没有,哈哈哈,就肯定排除了人家那边的问题了,后来参考网上的一篇文章才发现问题,

原来axios在发送请求的时候会自动对数据进行一次JSON转换。所以我们虽然在network里面看到传参格式为form data,但是实际上并不是form格式,而是转成了json,我们可以看到控制台的form data 后面有个:,是因为转成json后作为键名,对应的键值并没有,而是空,所以后台接不到数据,

既然找到了问题所在,那么就好解决了,

继续看axios的文档。

哈哈哈,找到办法了,axios提供了属性,我们可以在传递数据之前做一次处理就ok啦

import qs from 'qs'{transformRequest: [function (data) {return qs.stringify(data)}]}

虽然axios中带了qs,可以不用下载,但是用的时候还是需要引用一下的呀。

在axios中的config配置项中配置一下,处理一下数据就可以了。

处理好了以后,在来一次请求。

这样就没有问题了,成功请求到数据。

参考文章:Vue乱搞系列之axios发起表单请求

如果觉得《解决axios的post请求发送form格式数据 后台接收不到问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。