axios 拦截响应把多个状态码
时间: 2023-09-06 12:05:55 浏览: 88
axios是一个基于Promise的HTTP库,可以用于发送HTTP请求并处理响应。在使用axios时,可以通过拦截器来对请求和响应进行全局的处理。
拦截响应是指在请求返回的响应被处理之前,可以对响应进行一些操作,比如统一处理错误信息、统计请求时间等。我们可以在axios的实例中设置一个拦截器来实现对响应的拦截。
拦截响应可以用来处理多个状态码,比如401未授权、403禁止访问、404找不到资源等等。我们可以在拦截器的响应拦截函数中,对这些状态码进行判断,并做出相应的处理。
具体的操作可以在创建axios实例时,使用interceptors.response.use方法来添加响应拦截器,该方法接收两个参数,分别是成功和失败的回调函数。在成功的回调函数中,可以对响应的状态码进行判断,并根据具体情况来执行相应的操作。比如可以通过response.status来获取响应的状态码。
以下是一个简单的示例代码,展示了如何在axios中拦截响应并处理多个状态码:
```
import axios from 'axios';
const instance = axios.create({
baseURL: 'https://api.example.com',
});
// 拦截响应
instance.interceptors.response.use(
response => {
if (response.status === 401) {
// 处理未授权的情况
} else if (response.status === 403) {
// 处理禁止访问的情况
} else if (response.status === 404) {
// 处理找不到资源的情况
}
return response;
},
error => {
// 处理请求失败的情况
return Promise.reject(error);
}
);
export default instance;
```
上述代码中,我们使用axios.create方法创建了一个axios实例,并通过interceptors.response.use方法添加了响应拦截器。在成功的回调函数中,我们对不同的状态码进行了判断,并执行相应的操作。
总之,通过axios的拦截响应功能,我们可以方便地对多个状态码做出统一的处理,提升开发效率并增强用户体验。
阅读全文