状态 204 显示 response.ok

Sam*_*Sam 3 javascript http-status-codes fetch-api

在我的 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!
         }
      })
};
Run Code Online (Sandbox Code Playgroud)

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

Cer*_*nce 5

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

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

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

因此,ok您不仅可以检查,还可以这样做:

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