在 Axios 中,错误处理是通过 .catch 方法或者响应拦截器中进行的。以下是一些处理 Axios 请求和响应错误的示例:

1. 使用 .catch 处理错误:
axios.get('https://api.example.com/data')
  .then(response => {
    // 处理请求成功
    console.log('请求成功', response);
  })
  .catch(error => {
    // 处理请求失败
    console.error('请求失败', error);
    if (error.response) {
      // 请求发出去收到响应,但其状态码不在 2xx 范围内
      console.error('响应状态码:', error.response.status);
      console.error('响应数据:', error.response.data);
    } else if (error.request) {
      // 请求已经发出去,但没有收到响应
      console.error('没有收到响应');
    } else {
      // 设置请求时发生了一些事情,触发了错误
      console.error('请求设置时发生错误:', error.message);
    }
  });

2. 使用响应拦截器处理错误:
// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 对响应数据做些什么
    console.log('响应拦截器:响应成功', response);
    return response;
  },
  function (error) {
    // 对响应错误做些什么
    console.error('响应拦截器:响应错误', error);

    if (error.response) {
      // 请求发出去收到响应,但其状态码不在 2xx 范围内
      console.error('响应状态码:', error.response.status);
      console.error('响应数据:', error.response.data);
    } else if (error.request) {
      // 请求已经发出去,但没有收到响应
      console.error('没有收到响应');
    } else {
      // 设置请求时发生了一些事情,触发了错误
      console.error('请求设置时发生错误:', error.message);
    }

    return Promise.reject(error);
  }
);

在上述示例中:

  •  使用 .catch 方法处理请求错误时,error 对象包含了 response、request 和 message 属性,你可以根据这些属性来判断错误类型并进行相应的处理。


  •  使用响应拦截器时,error 对象也包含了相似的属性,同样可以用于判断和处理错误。


无论是使用 .catch 方法还是响应拦截器,你都可以根据具体的错误情况进行适当的处理,比如打印错误信息、重新发起请求、跳转到错误页面等。


转载请注明出处:http://www.zyzy.cn/article/detail/6283/Axios