赞
踩
写一个delete请求模块的时候,很完美,乍一看,后面报错,报的就是标题的错,接下来我来分析一下。
首先,我的delete请求,我传递的参数是一个对象型——user,而且我在后端还添加了@RequestBody注解,后面查资料我才知道@RequestBody注解适用的是Put和Post请求,并不直接适用delete请求,解释如下:
在Spring MVC中,
@RequestBody
注解通常用于处理HTTP请求的正文部分,它通常与POST或PUT方法一起使用,用于发送包含数据的JSON、XML或其他格式的请求。然而,@RequestBody
并不直接适用于DELETE
请求,因为DELETE
请求的标准定义是不包含请求体的,它的目的是表示删除资源。
DELETE /resource/{id}
这样的请求不需要提供任何数据(即没有@RequestBody
)。当你想要从服务器删除某个资源时,通常会指定资源的唯一标识符(如路径参数{id}
),而不是发送任何数据。不过,如果你在一个自定义的RESTful API中,或者使用了某种非标准的方式,比如允许客户端在DELETE请求中提供额外的信息来影响删除操作,这时你可以考虑使用
@RequestBody
,但这并不是标准做法,也不常见。
后面我成功的修改了代码。接下来看我的代码部分吧!也是不报错了!Nice!
前端:
- axios
- .delete("http://localhost:8080/user/deleteUserByUid/"+deleteData.value.uid,
- )
- .then((response) => {
- console.log(response);
- })
- .catch((error) => {
- console.log(error);
- });
后端:
- @DeleteMapping("/deleteUserByUid/{uid}")
- public void delete(@PathVariable("uid") String uid){
- System.out.println("接收的uid="+uid);
- usersService.deleteUserById(Integer.parseInt(uid));
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。