HTTP Status 405 - Request method 'POST' not supported (Spring MVC) HTTP Status 405 - Request method 'POST' not supported (Spring MVC) spring spring

HTTP Status 405 - Request method 'POST' not supported (Spring MVC)


I am not sure if this helps but I had the same problem.

You are using springSecurityFilterChain with CSRF protection. That means you have to send a token when you send a form via POST request. Try to add the next input to your form:

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>


Check if you are returning a @ResponseBody or a @ResponseStatus

I had a similar problem. My Controller looked like that:

@RequestMapping(value="/user", method = RequestMethod.POST)public String updateUser(@RequestBody User user){    return userService.updateUser(user).getId();}

When calling with a POST request I always got the following error:

HTTP Status 405 - Request method 'POST' not supported

After a while I figured out that the method was actually called, but because there is no @ResponseBody and no @ResponseStatus Spring MVC raises the error.

To fix this simply add a @ResponseBody

@RequestMapping(value="/user", method = RequestMethod.POST)public @ResponseBody String updateUser(@RequestBody User user){    return userService.updateUser(user).getId();}

or a @ResponseStatus to your method.

@RequestMapping(value="/user", method = RequestMethod.POST)@ResponseStatus(value=HttpStatus.OK)public String updateUser(@RequestBody User user){    return userService.updateUser(user).getId();}


You might need to change the line

@RequestMapping(value = "/add", method = RequestMethod.GET)

to

@RequestMapping(value = "/add", method = {RequestMethod.GET,RequestMethod.POST})