我正在尝试删除服务器上的资源,并希望通过我网页上的普通链接来执行此操作。
我知道在点击链接时我们无法向服务器发送 DELETE 请求,所以我尝试通过以下方法解决此问题
<form id="aux_form" action="environment/">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="id" value="${env.id}">
</form>
我的 Spring Controller 方法用
注释@RequestMapping(value = "/environment/", method = RequestMethod.DELETE)
但是,我收到错误消息 “请求的资源不允许指定的 HTTP 方法(不支持请求方法‘GET’)。” 所以我知道我的 Controller 方法没有被调用并且删除请求未正确映射。
如果有人能告诉我如何正确发送此删除请求,我将不胜感激。
谢谢:)
请您参考如下方法:
这应该有效:
在您的 web.xml 文件中注册此过滤器,这会将表单中的 _method 隐藏参数转换为 DELETE
Http 请求:
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
现在您的请求可以由这种类型的处理程序处理:
@RequestMapping(value = "/environment/", method = RequestMethod.DELETE)