• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 错误处理

    当使用catch,或者传递一个rejection callback作为then的第二个参数时,响应可以通过error对象被使用

    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);
      });
    

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

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

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

    axios.get('/user/12345')
      .catch(function (error) {
        console.log(error.toJSON());
      });
    

    上篇:拦截器

    下篇:取消请求