写一个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));
    }

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐