导航
电话
咨询
地图
顶部
html原生表单不支持delete方法,仅支持get和post;需通过spring security的_csrf参数配合_method隐藏字段模拟delete请求,否则浏览器会默认以get方式提交导致405错误。
在Spring Boot(基于Spring Framework)中,前端HTML表单无法直接发送DELETE、PUT等非标准HTTP方法——这是HTML规范限制,与Spring配置无关。当您在Thymeleaf模板中设置 method="delete"(如
✅ 正确做法:使用Spring提供的HTTP方法伪装(Method Overriding)机制:
后端保持 @DeleteMapping 不变(推荐语义清晰):
@DeleteMapping("/conductor/confirmDelete") public String borrarConfirmado(@Valid Conductor driver, BindingResult result, Model model) { condService.borrarPersona(driver); return "redirect:/conductor/list"; }
前端表单必须改为 method="post",并添加隐藏字段 _method=DELETE 和CSRF令牌(Spring Security启用时必需):
⚠️ 注意事项:
@DeleteMapping("/conductor/confirmDelete/{id}") public String borrarConfirmado(@PathVariable Long id, Model model) { condService.borrarPersonaById(id); // 推荐:按ID删除,避免表单绑定风险 return "redirect:/conductor/list"; }
总结:HTML表单的method属性仅接受get或post;Spring通过_method参数+HiddenHttpMethodFilter将POST请求“重写”为DELETE/PUT等,这是标准且安全的解决方案。切勿依赖无效的method="delete",也无需自定义过滤器或禁用CSRF。
# app # html # js # 前端 # json # 后端 # 接口 # javascript # java # 浏览器 # delete # spring # csrf # ajax # spring boot # html表单
相关栏目: 【 行业资讯 】 【 网络运营 】 【 GEO优化 】 【 营销推广 】 【 SEO优化 】 【 技术教程 】 【 代码知识 】 【 AI推广 】
相关推荐: Win11怎么更改任务栏颜色_Windows11个性化重音色设置 Win10怎么更改用户名 Win10修改账户名称操作教程 Win10怎样安装Word样式库_Win10安装Word样式教程【步骤】 Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件 PHP 中 require() 语句返回值的用法详解 Win10怎么设置开机密码_Windows10账户登录密码设置与取消 如何使用 Python 合并文件夹内多个 Excel 文件并避免权限错误 Win11怎么清理C盘OneDrive缓存_Win11清理OneDrive缓存技巧【方法】 php转mp4怎么设置帧率_调整php生成mp4视频帧率说明【说明】 Windows Defender扫描失败怎么办_安全模块损坏修复方式 Python多线程使用规范_线程安全解析【教程】 Linux如何安装Golang环境_Linux下Go语言开发包配置【方法】 Windows7怎么找回经典开始菜单_Windows7经典菜单找回步骤【方法】 Mac怎么给文件夹加密_Mac创建加密磁盘映像教程【安全】 Win11怎么设置系统还原_Windows11系统属性保护设置 php本地部署后数据库连接报错_1045accessdenied错误解决方法详解【汇总】 c++如何连接Redis c++ hiredis库使用教程【指南】 Win11怎么更改系统语言_Win11中文语言包下载与安装【指南】 Win11怎么关闭定位服务_保护Win11位置隐私设置指南【详解】 如何在Golang中实现自定义Benchmark_Golang testing.B自定义性能测量示例 Win11怎么设置快速访问主页_Windows11资源管理器文件夹选项 c# Task.ConfigureAwait(true) 在什么场景下是必须的 How to Properly Use NumPy in VS Code Win11关机快捷键是什么_Win11快速关机方法【大全】 如何使用Golang table-driven fuzz测试_多数据随机化发现缺陷 Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤 Windows的开始菜单如何自定义_开始菜单磁贴布局与应用管理【教程】 电脑的“网络和共享中心”去哪了_Windows 11新版网络设置指南【新手】 php中::能访问全局变量吗_全局作用域与类作用域区分【操作】 Python多进程教程_multiprocessing模块实战 Mac如何整理桌面文件_Mac使用堆栈功能一键整理 Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】 Mac怎么设置登录项_Mac管理开机自启动程序【教程】 PHP接收参数长度超限怎么办_修改postmaxsize设置教程【解答】 ACF 教程:如何正确更新嵌套在多层 Group 字段内的子字段 如何在Golang中修改数组元素_通过指针实现原地更新 Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】 如何在 IIS 上为 ASP.NET 6 应用排除特定目录并交由 PHP 处理 Mac如何设置动态壁纸?(让桌面动起来) Win11怎么设置屏保时间_调整Win11屏幕保护等待时间【详解】 如何在Golang中处理二进制数据_Golang io与encoding/binary二进制操作方法 Win11怎么恢复出厂设置_Win11重置此电脑保留文件方法【详解】 LINUX的SELinux是什么_详解LINUX强制访问控制系统的入门与配置 如何使用Golang实现负载均衡_分发请求到多个服务节点 Win11如何开启telnet服务 Win11启用Telnet客户端【步骤】 Win11怎么查看wifi信号强度_检测Windows 11无线网络质量方法【详解】 Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置 Win10怎样清理C盘阿里旺旺缓存_Win10清理阿里旺旺缓存步骤【步骤】 如何使用Golang encoding/json解析JSON_Golang encoding/json解析与序列化示例 Windows10怎么查看硬件信息_Windows10硬件信息查询方法【指南】
赣ICP备2024031479号