返回

JavaScript await fetch 获取响应状态码的详细指南

javascript

JavaScript 中使用 await fetch 时获取响应状态码

简介

JavaScript 的 fetch API 提供了一种向服务器发送请求并在浏览器中处理响应的方便方法。然而,在某些情况下,获取请求的响应状态码可能会很棘手。本文将探讨如何使用 await fetch 正确获取响应状态码。

问题:无法获取状态码

在使用 await fetch 执行请求时,你可能会发现无法直接访问响应状态码。这是因为 fetch 返回一个 Promise 对象,它代表了请求的最终结果。

解决方法

1. 使用 response.status

fetch 响应对象提供了一个 status 属性,其中包含请求的响应状态码。要获取状态码,请执行以下操作:

const response = await fetch(apiUrl);
const statusCode = response.status;

2. 使用 try/catch 块处理错误

fetch 请求可能会因各种原因失败。使用 try/catch 块可以捕获错误并根据需要采取措施。

try {
  const response = await fetch(apiUrl);
  const statusCode = response.status;
  // 根据状态码处理响应
} catch (error) {
  // 处理错误
}

代码示例

以下代码示例演示了如何获取响应状态码:

async function myFunction() {
  try {
    const response = await fetch("https://example.com/api/v1/users");
    const statusCode = response.status;
    if (statusCode === 200) {
      // 200 OK
    } else {
      // 处理错误
    }
  } catch (error) {
    // 处理错误
  }
}

其他注意事项

  • mode: "no-cors" 选项禁用跨域请求。
  • method: 'HEAD' 选项获取资源的标头信息,但不返回响应主体。

常见问题解答

1. 什么是响应状态码?
响应状态码是一个三位数代码,表示服务器对请求的响应。常见的响应状态码包括 200(成功)、404(未找到)和 500(内部服务器错误)。

2. 为什么获取响应状态码很重要?
响应状态码提供有关服务器响应的宝贵信息。它可以帮助你确定请求是否成功,或者是否发生了错误。

3. 我可以在 await fetch 之前获取状态码吗?
不可以。状态码是响应的一部分,只能在请求完成并接收到响应后才能获得。

4. 如果 fetch 请求失败,如何获取状态码?
使用 try/catch 块捕获错误。错误对象将包含状态码。

5. 如何在服务器端处理状态码?
服务器端代码负责生成响应状态码。不同的框架和语言可能提供不同的方法来设置状态码。

结论

通过遵循这些步骤,你可以轻松地获取 JavaScript 中使用 await fetch 时的响应状态码。这将使你能够更好地理解和处理服务器响应。