Spring boot: Request method 'DELETE' not supported, Request method 'PUT' not supported, Request method 'POST' not supported

时间:2023-03-08 17:45:17

GET,POST,PUT,DELETE, Spring都支持,不要怀疑Spring, 一定是前端发送的rest 请求和后端的响应不匹配,

查找原因以及解决办法, 很简单

用chrome打开F12控制台,仔细检查核对发送到服务端的rest请求的url是否和后端的rest服务匹配,如果不匹配就会出类似错误

比如后端服务如果定义是这样,http://xxx.xxx.xxx/users/abc请求,将删除用户abc

@RestController
@RequestMapping(value="/users")
public class UserDataController {
@RequestMapping(value="{/id}", method=RequestMethod.DELETE)
... ....

如果前端有拼接URL的代码,比如

var url = "http://xxx.xxx.xxx/users/" + userid

但如果如果因为bug或者错误,导致userid为空,就可能发送的请求是http://host/users/, 这样就会导致 Request method 'DELETE' not supported, Request method 'PUT' not supported, Request method 'POST' not supported类似的异常