axios 的响应拦截器什么时候触发error
前言
在使用 axios 发送请求的过程中,我们经常会用到响应拦截器来对返回的数据进行处理。在响应拦截器中,我们可以对请求返回的数据进行统一处理,例如校验返回的状态码、统一处理错误等。其中,一个很重要的问题是,响应拦截器什么时候会触发 error?
axios 的基本使用
在开始之前,我们先来回顾一下 axios 的基本使用。
安装 axios
要使用 axios,首先需要安装它。我们可以使用 npm 来进行安装:
$ npm install axios
发送 GET 请求
发送 GET 请求非常简单,只需要调用 axios 的 get
方法即可。下面是一个发送 GET 请求的示例代码:
const axios = require('axios');
axios.get('
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
发送 POST 请求
发送 POST 请求与发送 GET 请求类似,只需要调用 axios 的 post
方法并传入请求的参数即可。下面是一个发送 POST 请求的示例代码:
const axios = require('axios');
axios.post(' {
name: 'Alice',
age: 20
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
响应拦截器
使用 axios 发送请求时,我们可以通过设置响应拦截器,对返回的数据进行统一处理。在响应拦截器中,我们可以对请求返回的数据进行校验、统一处理错误等操作。
设置响应拦截器
要设置响应拦截器,我们可以使用 axios.interceptors.response.use
方法。这个方法接受两个参数,第一个参数是成功回调函数,第二个参数是失败回调函数。下面是一个设置响应拦截器的示例代码:
axios.interceptors.response.use(
response => {
// 对返回的数据进行处理
return response;
},
error => {
// 对请求错误进行处理
return Promise.reject(error);
}
);
响应拦截器的触发时机
响应拦截器的触发时机取决于请求的结果。当请求成功时,即使返回的状态码不是 200,响应拦截器的成功回调函数也会被触发。只有当请求出现网络错误或其他错误时,才会触发响应拦截器的失败回调函数。
示例代码
为了更好地理解响应拦截器的触发时机,下面我们来看一个示例代码。
const axios = require('axios');
// 设置响应拦截器
axios.interceptors.response.use(
response => {
// 对返回的数据进行处理
return response;
},
error => {
// 对请求错误进行处理
return Promise.reject(error);
}
);
// 发送 GET 请求
axios.get('
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
在上面的代码中,我们发送了一个 GET 请求,并设置了响应拦截器。在成功回调函数中,我们打印了返回的数据;在失败回调函数中,我们打印了错误信息。可以看到,无论请求成功或失败,响应拦截器的回调函数始终会被触发。
总结
在本文中,我们介绍了 axios 的基本使用和响应拦截器的使用。我们了解到,响应拦截器的触发时机取决于请求的结果。当请求成功时,响应拦截器的成功回调函数会被触发,无论返回的状态码是否为 200;当请求出现网络错误或其他错误时,响应拦截器的失败回调函数才会被触发。
希望本文对你理解 axios 的响应拦截器有所帮助!