“成功但有错误”的 HTTP 状态代码?

2023-11-26

我查了一下,但没有看到请求成功时的 HTTP 状态代码,但在“不返回点”之后出现错误。

例如,假设您处理一个请求,将其提交给数据库,但是在返回结果时您耗尽了内存,或者遇到了 NPE,或者发生了什么。它would曾经是200响应,但现在,在内部,您无法返回正确的、格式良好的响应。

202 Accepted似乎不适合,因为我们已经处理了请求。

什么状态代码表示“成功,但有错误”?存在吗?


HTTP 没有这样的状态代码,但是有一个最佳实践可以让您处理这种情况 - 在 POST 操作后重定向用户。

这是一个细分——

  1. POST 请求尝试修改服务器上的数据
  2. 如果服务器出现故障,它会发送 500 错误来指示失败
  3. 如果服务器成功,则会发送 302 重定向响应
  4. 然后浏览器向服务器发送新的 GET 请求
  5. 如果失败,您将收到 500 错误,否则您将收到 200

因此,“已保存数据但无法立即检索它”的用例将转换为初始 POST 的 302 重定向,然后是后续 GET 的 500 重定向。

这种方法还有其他优点 - 您可以摆脱恼人的“您确定要重新提交数据吗?”信息。还可以让您的后退/前进/刷新按钮保持可用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“成功但有错误”的 HTTP 状态代码? 的相关文章

随机推荐

  • 芹菜异常处理

    假设我有这个任务定义 def some other foo input raise Exception This is not handled return input app task bind True max retries 5 so
  • 专门化静态 constexpr 数据成员

    我有一个类来描述某种类型的一些特征 template
  • Hammer JS 无法与主干一起工作

    我正在尝试让 Hammer JS 事件与主干一起工作 但无法让它响应事件 我已经尝试过以下方法 http cijug ne t tech 2013 01 16 backbone hammer https gist github com kj
  • 如何调整 Google AdWords 跟踪像素以在 AngularJS 应用程序中使用?

    如何调整 AdWords 跟踪像素以使其在 AngularJS 应用程序中按预期运行 典型的跟踪代码如下所示
  • 更改 UIBarButtonItem 的宽度[重复]

    这个问题在这里已经有答案了 我怎样才能改变宽度UIBarButtonItem到 29 像素 属性宽度不起作用 我不想创建一个UIButton并使用initWithCustomView因为我希望方形背景适应导航栏颜色 我正在使用initWit
  • 如何将 graphql-type-json 包与 GraphQl 一起使用

    我无法让 GraphQL 识别 JSON 标量类型 我遵循了 apollo 文档 http dev apollodata com tools graphql tools scalars html Using a package 为我的架构定
  • 有哪些类型的宏/语法扩展/编译器插件?

    我对 Rust 生态系统中用于几个类似宏的事物的许多术语感到非常困惑 有人可以澄清有哪些宏 语法扩展 编译器插件并解释这些术语之间的关系吗 你说得对 它is令人困惑 特别是 因为大多数这些功能都不稳定并且经常变化 但我会尝试总结一下目前的情
  • 全屏视频切换 HTML

    HTML 5 中的视频标签确实令人着迷 我需要知道是否可以让用户切换全屏播放 我不想使用任何其他视频插件 我只需要使用视频标签 那么这可能吗 请帮帮我 您可以使用以下代码创建一个按钮 使视频进入全屏模式 JavaScript 代码
  • GC.SuppressFinalize 是否有保证?

    我在实践中的观察是GC SuppressFinalize并不总是抑制对终结器的调用 尽管如此 终结器仍可能被调用 因此我想知道是否GC SuppressFinalize具有以下性质request而不是一个保证通过系统 更多信息 如果需要 以
  • 如果间接调用sied方法则不会调用Sinon Spy

    Problem 在我们的代码库中 我们遇到了 sinon 的问题 可以使用下面的代码片段来重现该问题 问题是 这似乎是间接的所谓间谍还击力量false the console log明确指出该方法被调用 但spy called遗迹false
  • Jython 不会导入用户定义的类;导入错误:没有名为 ****** 的模块

    这几天我一直在用头撞墙 试图解决这个问题 我已经开始使用 Jython 进行快速原型设计 我遇到了一个看似非常基本的问题 但我似乎无法克服它 我是在JythonBook 的第 10 章当我尝试编写和使用 Beach 类时遇到了问题 从标记为
  • 通过文本转语音朗读时暂停电话铃声,然后恢复

    我正在制作一个来电者语音应用程序 它使用 TTS 说出来电者姓名 我想在 TTS 说话时暂停铃声 然后恢复铃声 根据我的研究 我们可以使用AudioFocus 希望如此 无论如何我正在使用以下代码 Update 我现在正在使用这段代码 pu
  • Java:如何将java.util.logging的语言更改为英语?

    我有 java util logging 将输出打印到文件 效果很好 然而 这些消息包含对应于日志级别以及记录消息的时间 如何让它打印英文而不是中文 这就是当前消息的样子 11月 08 2016 8 28 03 下午 mySamples t
  • 取消 Afnetworking 2.0 中的 Post 请求

    您好 我正在使用 AFnetworking 2 0 发出发布请求 我的请求看起来像这样 AFHTTPRequestOperationManager manager AFHTTPRequestOperationManager manager
  • 无法打开另一个 Excel 文件(当通过 .net 打开一个 Excel 时)

    我设计了一个 net 应用程序 它将在登录时打开 Excel 文件并用它来打印报告 当用户注销时它将被关闭 我将 Excel 文件的可见设置为 false 以便用户不知道后台进程 但是 如果任何人在此期间打开任何其他 Excel 文件 我的
  • 有没有办法使用javascript检测网络连接类型? [复制]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以检查用户是否使用 javascript 从 2G 3G 4G 或 WiFi 连接 据我所知 只有 Mozilla 提供了网络信息 API 它有助于检测一般连接类型 如 wifi 蜂窝 等
  • 如何在 Caliburn.Micro 中绑定按键手势?

    如何让 Caliburn Micro 将按键手势映射到 ViewModel 上的操作方法 例如 我想实现一个选项卡式界面 并且希望我的 ShellViewModel 有一个 NewTab 方法 用户应该能够通过按键盘上的 Ctrl T 来调
  • 如何通过我的网站分享 Facebook 活动?

    我想在我的网站上分享活动 有按钮 喜欢它 但没有像 加入活动 这样的按钮 有任何想法吗 None
  • 如何使用C++流优雅地读取整数?

    我有一个充满以下格式行的文件 1 2 3 我只想使用 C 流加载数字 最优雅的方法是什么 我只考虑了 cin get 并检查每个字符是否是数字 我认为这将是最快但又优雅的方式 int a b c scanf d d d a b c
  • “成功但有错误”的 HTTP 状态代码?

    我查了一下 但没有看到请求成功时的 HTTP 状态代码 但在 不返回点 之后出现错误 例如 假设您处理一个请求 将其提交给数据库 但是在返回结果时您耗尽了内存 或者遇到了 NPE 或者发生了什么 它would曾经是200响应 但现在 在内部