Spring:状态 405。不支持请求方法“POST”

Posted

技术标签:

【中文标题】Spring:状态 405。不支持请求方法“POST”【英文标题】:Spring: Status 405. Request method 'POST' not supported 【发布时间】:2017-05-03 02:31:51 【问题描述】:

我从表单发送一个动作到

<form name='recoverForm' action="<c:url value='recover'/>" method='POST'>

春天:

@Controller
@RequestMapping(value = "recover")
public class RecoverController 

    @RequestMapping(method = RequestMethod.GET)
    public String recoverPage(Map<String, Object> model) 
        return "recover"; //this works
    

    @RequestMapping(method = RequestMethod.POST)
    public String recover(Map<String, Object> model) 
        System.out.println("_____________recover in action");
        return "home"; //error 405
    

但我收到错误 405 - 不支持请求方法“POST”。

为什么会这样?我发送post request 和控制器有一个post 方法不是吗?

【问题讨论】:

你的GET 有用吗? @timothyclifford 是的,它有效 当你的应用启动时,你能在日志中看到被映射的 POST 路由吗? @timothyclifford 不确定,你是什么意思 你用的是什么版本的 Spring? 【参考方案1】:

在 Spring-security.xml &lt;csrf /&gt; 中:Spring Security Cross Site Request Forgery (CSRF) 保护阻止它。

需要令牌以及通过 POST 请求的表单。

在表单中添加以下内容:

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

【讨论】:

不在`spring-sequrity.xml`中,但在页面中的form

以上是关于Spring:状态 405。不支持请求方法“POST”的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC HTTP 状态 405 - 不支持请求方法“POST”

HTTP 状态 405 - 不支持请求方法“POST”(Spring MVC)

错误 405 请求方法 'POST' 不支持 Spring Security

Spring Boot POST 请求返回 http 状态 405“方法不允许”而不是 HTTP 状态 404

405 - 请求方法“POST”不支持 Spring MVC + Spring Security

HTTP 状态 405 - 不支持请求方法“PUT”