vue axios post请求向后台SpringMVC提交数据问题

昨天跟前端vue联调的时候,遇到了前端提交数据,我这边接收不到的问题。前端是vue 用axios发送post请求,后台是Springmvc接收数据。

一直在报“Spring MVC Content type ‘application/x-www-form-urlencoded’ not supported”这个错误,
也许两人都认为是对方的问题吧, 搞了一下午都没解决。

当前项目里面有表单提交的页面,都是可以正常提交且返回成功的,于是把两个请求拿出来对比,
发现了http协议Request payload 与format data的不同,于是让他加上了contentType: “application/json”,然并卵。
在这里插入图片描述
后来想起了接口是加入了@RequestBody来接收数据的,把它删除后,
再次请求,通过debug发现拦截器中有数据了,然而走不到接口,就结束了。

在前端直接拼json字符串或者不转数据(qs和JSON),就会因为数据格式不对页面报跨域的错误。
通过JSON.stringify()转数据,拦截器收到的是整个json串作为key,value为空({{‘id’:‘1234’}=[]}),前端log的数据正常,Form Data 的数据json后边会有个“:”冒号;
通过qs.Stringify(),只有一层数据的话是正常的,但是里面再嵌套一层实体,后台就会报这个实体既不是数组也不是集合的问题。

在查找资料的时候看到了这篇文章(https://blog.csdn.net/weixin_39378691/article/details/83781478),
提到了给axios添加请求头!
在这里插入图片描述
虽然问题到这儿没有解决,不过看到了 http协议已经不在是format data,而是 request payload,

于是把删掉的@RequestBody重新加上,再处理下后台请求头的问题,至此问题解决!

第一次写文章,谨以此记录这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值