我正在尝试删除服务器上的资源,并希望通过我网页上的普通链接来执行此操作。

我知道在点击链接时我们无法向服务器发送 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) 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!