我查了一下,但没有看到请求成功时的 HTTP 状态代码,但在“不返回点”之后出现错误。
例如,假设您处理一个请求,将其提交给数据库,但是在返回结果时您耗尽了内存,或者遇到了 NPE,或者发生了什么。它would曾经是200
响应,但现在,在内部,您无法返回正确的、格式良好的响应。
202 Accepted
似乎不适合,因为我们已经处理了请求。
什么状态代码表示“成功,但有错误”?存在吗?
HTTP 没有这样的状态代码,但是有一个最佳实践可以让您处理这种情况 - 在 POST 操作后重定向用户。
这是一个细分——
- POST 请求尝试修改服务器上的数据
- 如果服务器出现故障,它会发送 500 错误来指示失败
- 如果服务器成功,则会发送 302 重定向响应
- 然后浏览器向服务器发送新的 GET 请求
- 如果失败,您将收到 500 错误,否则您将收到 200
因此,“已保存数据但无法立即检索它”的用例将转换为初始 POST 的 302 重定向,然后是后续 GET 的 500 重定向。
这种方法还有其他优点 - 您可以摆脱恼人的“您确定要重新提交数据吗?”信息。还可以让您的后退/前进/刷新按钮保持可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)