返回

Axios 获取 HTTP 错误状态码指南:提取详细错误信息

javascript

在 Axios 中获取 HTTP 错误的状态码

简介

使用 Axios 进行 HTTP 请求时,正确处理错误对于确保应用程序的稳定性和健壮性至关重要。本文将深入探讨如何从 Axios 中的 HTTP 错误中提取状态码和其他相关信息,从而更全面地了解错误的性质。

获取错误信息

当 Axios 请求失败时,它会抛出一个包含错误信息的错误对象。要访问这些信息,可以使用 .catch() 方法:

axios
  .get('foo.example')
  .then((response) => {
    // 请求成功
  })
  .catch((error) => {
    // 请求失败
    console.log(error); // 输出错误信息
  });

解析错误对象

默认情况下,error 对象包含一个字符串消息,请求失败的原因。然而,我们可以访问 error.response 属性来获取更详细的信息,包括状态码和响应内容:

const { status, statusText, data } = error.response;
console.log(`Status code: ${status}`);
console.log(`Status text: ${statusText}`);
console.log(`Response data: ${data}`);
  • status:HTTP 状态码(例如,404)
  • statusText:与状态码关联的文本(例如,“Not Found”)
  • data:服务器响应的主体内容(如果存在)

示例:获取状态码

axios
  .get('foo.example')
  .then((response) => {})
  .catch((error) => {
    const { status } = error.response;
    console.log(`Error status code: ${status}`);
  });

输出:

Error status code: 404

结论

通过使用 .catch() 方法和解析 error.response 属性,我们可以轻松地从 Axios 中的 HTTP 错误中获取状态码和其他相关信息。这有助于调试和处理请求失败的情况,从而确保应用程序的可靠性和健壮性。

常见问题解答

  1. 为什么需要获取 HTTP 错误的状态码?

    • 状态码提供有关错误性质的宝贵信息,例如请求是否成功、服务器不可用或资源不存在。
  2. 如何处理 HTTP 404 错误?

    • 404 错误表示请求的资源不存在。通常,应用程序会显示“404 未找到”页面或重定向到其他页面。
  3. 如何从 Axios 响应中获取错误消息?

    • 错误消息存储在 error.response.data 属性中,通常包含更具体的错误详细信息。
  4. Axios 是否支持处理重定向?

    • 是的,Axios 支持处理重定向。可以通过设置 maxRedirects 选项来控制重定向的次数。
  5. 如何使用 Axios 超时错误?

    • 超时错误表示请求在指定的时间范围内没有收到响应。可以通过设置 timeout 选项来配置超时时间。