当获取失败并出现“TypeError: Failed to fetch”时如何获取状态代码?

问题描述 投票:0回答:1

我有以下代码:


    let response = null;
    try {
      response = await fetch(url, { method,
        headers: {
          Authorization: `Bearer ${accessToken}`,
        }
      });
      console.log("Status", response?.status);
    } catch (e) {
      console.log("Error", e);
      console.log("Response", response);
    }

我的请求失败,状态代码为 403,但我无法从任何地方获取此

403
。上面的代码没有到达
console.log("Status", response?.status);
行,而是进入
catch
部分,其中
response
undefined
e
是消息
"TypeError: Failed to fetch"
和堆栈跟踪的错误,但没有任何进一步的细节关于响应(实际上,我寻找响应状态代码)。

有人知道当 fetch 进入 catch 部分失败时如何获取状态代码(在我的示例中为

403
)吗?

javascript fetch http-status-code-403
1个回答
0
投票

尝试使用

response.ok

用你的例子:

if (response.ok) {
    console.log("Status", response.status);
} else {
    console.log("Response is not OK, status:", response.status);
}

通过使用“response.ok”,您将检查错误代码 200-299

© www.soinside.com 2019 - 2024. All rights reserved.