我有以下代码:
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
)吗?
尝试使用
response.ok
用你的例子:
if (response.ok) {
console.log("Status", response.status);
} else {
console.log("Response is not OK, status:", response.status);
}
通过使用“response.ok”,您将检查错误代码 200-299