不支持请求方法“POST”
Posted
技术标签:
【中文标题】不支持请求方法“POST”【英文标题】:Request method 'POST' not supported 【发布时间】:2011-05-04 20:43:44 【问题描述】:根据 Spring 文档here:
虽然 HTTP 定义了这四种方法,但 html 只支持两种:GET 和 POST。幸运的是,有两种可能的解决方法:您可以使用 javascript 执行 PUT 或 DELETE,或者简单地使用 'real' 方法作为附加参数执行 POST(建模为 HTML 表单中的隐藏输入字段)。
他们做了后者,可以用下面的spring MVC表单标签来实现:
<form:form method="delete">
<input type="submit" value="Delete"/>
</form:form>
问题是当我点击“删除”时,我的页面会抛出以下错误:
HTTP Status 405 - Request method 'POST' not supported
我将org.springframework.web
的调试级别改成debug,发现如下信息:
DEBUG AnnotationMethodHandlerExceptionResolver - Resolving exception from handler [foo.bar.MessageForm@da9246]:
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported
我将RestClient 与 DELETE 方法一起使用,并且该方法按预期调用。我在这里做错了什么?
【问题讨论】:
我尝试使用 RestClient 作为参数 POST 并返回状态代码:405 方法不允许。问题可能出在哪里? 你能发布你的控制器吗? @hisdrewness 是的,我可以,但我认为问题不在于控制器的 url 映射,因为使用 RestClient 可以正常工作。 【参考方案1】:你需要在你的 web.xml 中配置 HiddenHttpMethodFilter
详情可见here:
【讨论】:
我配置了过滤器并放置了过滤器映射以包含Spring MVC Dispatcher的以上是关于不支持请求方法“POST”的主要内容,如果未能解决你的问题,请参考以下文章
错误 405 请求方法 'POST' 不支持 Spring Security
使用 Spring Security 登录:不支持请求方法“POST”