【解决前端报错】Bad Request: Required request parameter ‘id‘ for method parameter type Long is not present

在前端使用Long类型的id执行删除操作时遇到400 Bad Request错误,原因是Swagger中Long类型显示为integer64,前端可能未将id字段正确转化为JSON格式。后端console控制台显示前端请求参数问题。解决方案可能是确保前端在调用接口时,将Long类型的id以JSON格式传递,如使用JSON.stringify转换。可参考相关链接进行问题排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后端查询列表接口返回的对象里包含Long id,前端获取到这个id,执行通过Long id删除操作。这时删除操作报错400,大意是没找着Long类型的id.

swagger相关接口截图:
在这里插入图片描述
Long类型的在swagger显示是integer64 , integer是integer32.
在这里插入图片描述
这是前端请求后,出现在我的后端console控制台的报错信息。
前端部分代码如下图所示:
在这里插入图片描述
也许问题出现在接口的参数传递上,接收的参数是urlencode编码格式还是json编码格式?

这时我突然意识到,或许前端获取了一条数据后,在获取这条数据的某个字段值时没有把相应的字段值类型转化为json格式,而作为一个接口而言,只认识 json 格式的入参。这就导致了上面的报错,没有需要的值存在。
比如获取了一条 User 类型的数据,把其中的 Long Id 单独取出来作为入参传给接口,这时需要把Long Id转换成Json格式。得用 json.Stringfy(id)将其转为json的字符串格式传入。

导这个包在这里插入图片描述

前端可以尝试用qs.stringfiyjson.Stringfy() 来重新编码参数。

相关链接1
相关链接2
相关链接3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值