@RequestParam & Required Integer parameter 'xxx' is not present

@RequestParam & Required Integer parameter ‘xxx’ is not present

在deadline的濒死时期,我和前端童鞋由于 Required Integer Parameter ‘xxx’ is not present 的问题给弄慌了。

按理来说使用这个注释时应该可以使用 GET/POST 都行才对。但是在对接时发现,POST失败,且出现了 【400】 Required Integer parameter ‘xxx’ is not present 的报错。顿时泪如雨下:)。但是,当前端童鞋使用GET方法时,竟然能行。我的泪水瞬间止住,纳尼?这是什么情况?

一、@RequestParam 的注释

作为后端开发,使用该注释时应该了解一点。这个是只能从请求的地址中取出参数,也就是只能从 username=admin&password=admin这种字符串中解析出参数。
ps:只能从 username=admin&password=admin这种字符串中解析出参数。

二、前端 axios

和前端童鞋了解后,明白两点

1、axios会帮我们 转换请求数据和响应数据 以及 自动转换 JSON 数据
2、源码中存在
在这里插入图片描述

我们知道在做 post 请求的时候,我们的传参是 data: {…} 或者直接 {…} 的形式传递的,嗯,就是下面这两种形式
在这里插入图片描述

在这里插入图片描述
欸这时候源码就开始发挥其作用了

总结

因为我们的参数是 JSON 对象,axios 帮我们做了一个 stringify 的处理。
而且查阅 axios 文档可以知道:axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的。然而,@RequestParam它却不接受,因为不符合(服务端要求的 ‘Content-Type’: ‘application/x-www-form-urlencoded’)

处理方案

由于后端懒得改代码,于是随手甩给前端一个博客(你想死嘛?

https://www.jianshu.com/p/482d61f96075

其实后端修改为@RequestBody就可以了:)

哈哈哈 知道这个bug 后看谁反应快 甩给他锅:)(你又想死了?

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monkey_Men

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值