错误处理

axios.get('/user/12345').catch(function (error) {
  if (error.response) {
    // 请求成功发出且服务器也响应了状态码,但状态代码超出了 2xx 的范围
    console.log(error.response.data);
    console.log(error.response.status);
    console.log(error.response.headers);
  } else if (error.request) {
    // 请求已经成功发起,但没有收到响应
    // `error.request` 在浏览器中是 XMLHttpRequest 的实例,
    // 而在node.js中是 http.ClientRequest 的实例
    console.log(error.request);
  } else {
    // 发送请求时出了点问题
    console.log('Error', error.message);
  }
  console.log(error.config);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

使用 validateStatus 配置选项,可以自定义抛出错误的 HTTP code。

axios.get('/user/12345', {
  validateStatus: function (status) {
    return status < 500; // 处理状态码小于500的情况
  },
});
1
2
3
4
5

使用 toJSON 可以获取更多关于 HTTP 错误的信息。

axios.get('/user/12345').catch(function (error) {
  console.log(error.toJSON());
});
1
2
3
Last Updated: 11/18/2021, 5:55:33 PM