fetch在catch前端打印err只有err Error:Unauthorized at checkStatus 没有具体的后端返回来的错误码
时间: 2024-12-24 16:37:07 浏览: 2
`fetch` 是前端 JavaScript 中用于发起 HTTP 请求的一个 API。当你在 `try-catch` 块中处理 `fetch` 的结果时,如果请求失败(比如返回的状态码不是 2xx),`catch` 部分通常会接收到一个表示错误的 Promise 对象,其中包含了一个 `Error` 实例。在你的例子中,`err` 变量包含了 `Error:Unauthorized` 这样的消息,这表明服务器返回了未授权状态,但具体后端返回的错误码并没有直接显示在 `err` 的详细信息里。
通常,`fetch` 的错误信息不会包含完整的 HTTP 错误响应体,特别是像状态码这样的具体数据。你需要查看服务器日志或者通过其他方式(如设置适当的头部来解析响应头或者请求体)来获取更详细的错误信息,包括状态码。
例如,在 Node.js 环境下,你可以检查响应的 `headers` 或者 `json()` 解析后的数据:
```javascript
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Server responded with status ${response.status}`);
}
} catch (error) {
console.error('Error:', error.message, 'Code:', error.response && error.response.status);
}
```
在这个示例中,如果你能访问到 `error.response`,就可以看到状态码。
阅读全文