You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC中form表单_method=delete提交DELETE请求失败如何解决

核心问题解答

使用value="delete"的隐藏input标签发送DELETE请求本身不是错误写法,这是Spring生态中HTML表单提交REST风格请求的官方标准实现方案,底层依赖HiddenHttpMethodFilter过滤器读取_method参数值,覆盖原始POST请求的方法类型。

问题根因定位

从报错可以看出请求实际被@PostMapping匹配,说明HiddenHttpMethodFilter没有将当前请求的方法转换为DELETE,结合PUT请求可正常生效的表现,可从以下方向排查:

  • 检查_method参数的大小写:Spring默认的HiddenHttpMethodFilter允许的方法列表为大写的PUT、DELETE、PATCH,部分版本会严格匹配大小写,可尝试将value="delete"改为value="DELETE"测试。
  • 检查自定义过滤器配置:如果你手动修改过HiddenHttpMethodFilter的允许方法列表,确认是否漏掉了DELETE的配置。
  • 检查参数传递:可在@PostMapping对应的方法中打印当前请求的参数和请求方法,确认_method参数是否被正常传递到后端,是否被其他拦截器提前移除。

临时解决方案

如果排查过滤器配置耗时较长,也可以暂时给DELETE接口新增POST的路由兼容,或者改用AJAX发送原生DELETE请求,均可规避当前问题。


内容的提问来源于stack exchange,提问作者thecenterofpower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:36:03