vue axios 请求后端无法传参问题

vue请求后端无法传参问题

问题描述

在学习vue时,使用axios调用后端,发现无法把参数正确传到后端,现象如下:

  1. 使用vue发起请求,浏览器上已经有传参,但是后端没接收到对应的用户名密码:
    在这里插入图片描述
    在这里插入图片描述

  2. 使用postman发起请求,后端可以接收
    在这里插入图片描述
    在这里插入图片描述

处理过程

使用postman发送,一切正常,说明vue的axios配置有问题,或者是我的参数穿的格式不对,参数我是这么传的,一个对象,按道理来说没啥问题,我认为后端会把这个json对象解析付给入参,但是结果却没有:
在这里插入图片描述
网上搜了一下,需要添加form表单头部到axios的header配置中:

{ "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" }

在这里插入图片描述
再次发起请求:
载荷里面的内容发生了变化,请求载荷变成了表单数据
在这里插入图片描述

后端成功解析到请求参数:在这里插入图片描述

总结

一开始以为请求载荷就是post请求里的表单数据,后面才发现这两个在浏览器的请求中是有区别的:

  1. axios如果直接传对象,不指定是表单数据的话,会自动帮你转成json字符串给后端(后端可以使用@RequestBody接收参数,我试过使用Map可以接收到前端两个参数)
  2. 指定了表单数据头部的话,才会传表单数据(后端可以使用@RequestParam来解析表单数据)
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值