【问题标题】:Status 204 shows response.ok状态 204 显示 response.ok
【发布时间】:2018-05-21 08:24:55
【问题描述】:

在我的 ASP.NET Core API 后端,当没有数据时我发送Status 204,但我注意到在前端,我的fetch 调用仍然显示response.ok

两个问题:

  1. 这是正常行为吗?我想,这是一个成功的通话,所以响应可能还不错,但它只是让我失望。
  2. 检查Status 204 的最佳方法是什么?

我的React/Redux 应用程序中的当前代码如下所示:

export const apiCall = () => {
   return (dispatch) => fetch("/api/get", fetchOptions)
      .then((response) => {
         if(response.ok) {
            // Do something
         } else {
            // Couldn't get data!
         }
      })
};

这是我处理fetch 调用的标准代码块。我应该如何修改它以处理Status 204 场景?

【问题讨论】:

  • 204 表示 服务器已成功完成请求,并且响应负载正文中没有要发送的其他内容。 - 所以,没关系 - 如果你想发出错误信号,使用错误响应状态!

标签: javascript http-status-codes fetch-api


【解决方案1】:

除了查看Response.ok,还可以查看Response.status。每MDN

Response 接口的 status 只读属性包含响应的状态码(例如,200 表示成功)。

Response.ok 只是检查status 属性是否为200-299。

所以,除了检查ok,您还可以:

if (response.status === 200) {
  // Do something
} else if (response.status === 204) {
  // No data!
} else {
  // Other problem!
}

【讨论】:

  • 有点冗长,但我认为这看起来是一种稳健的方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2020-04-05
  • 1970-01-01
  • 2018-09-30
相关资源
最近更新 更多