状态204显示response.ok

时间:2018-05-20 23:47:52

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

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

两个问题:

  1. 这是正常行为吗?我想,这是一个成功的电话,所以回复可能没问题,但它只是让我失望。
  2. 检查Status 204的最佳方法是什么?
  3. 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场景?

1 个答案:

答案 0 :(得分:2)

除了检查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!
}