故障排查

HTTP 412错误怎么处理:保存前先检查版本是否已经变化

资料核对与更新:2026-10-28 · 阅读约2分钟

接口返回 412 可能是条件请求未满足。本文介绍如何核对 ETag、重新读取版本并处理并发修改,避免直接覆盖他人更改。

源代码显示示意
源代码显示示意;作者:Slashme;许可:CC0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

编辑文章时,A 和 B 同时打开同一篇稿件。A 先保存,B 仍按旧版本提交;如果接口启用了条件更新,B 可能收到 HTTP 412。这是提示条件不再成立,不能简单理解为服务器坏了。

核对提交条件

在浏览器网络面板检查请求方法和 If-Match 等条件头,再对照服务端返回的错误。ETag 是资源版本的标识;当服务端要求匹配当前版本而客户端持有旧值时,更新可能被拒绝。实际行为仍以接口实现为准。

先获取最新内容

重新读取当前文章,比较本地修改与最新版本,提醒用户合并有差异的段落。合并后使用最新版本标识重新提交。不要在不提示的情况下移除条件头重发,否则可能覆盖其他编辑者刚保存的内容。

验证并发场景

用两个测试会话打开同一条记录:第一个保存后,第二个提交旧版本,应看到冲突提示而非静默成功。再手动合并并保存,确认两边需要保留的文字都在。把 412 与登录失效、参数校验失败分开记录。

对于自动发布程序,先查询实际结果和当前版本再重试;保留任务编号和版本号,有助于确认是重复请求还是新的修改。日志不要保存完整凭据或私人内容。

参考资料

资料核对日期:2026年10月28日。

MDN:412 Precondition Failed

MDN:ETag

本文新增价值
针对HTTP 412错误整理常见误区、操作顺序和验证方法,区分官方资料说明与面向实际问题的维护建议。