实现 axios 响应拦截错误回调

引言

在开发过程中,经常会涉及到与后端进行数据交互的场景,而 axios 是一款非常流行的 JavaScript 库,可以用于发起 HTTP 请求。在实际项目中,我们经常需要对请求的响应进行拦截,以便处理错误情况。在本文中,我将向你介绍如何使用 axios 实现响应拦截错误回调。

整体流程

在使用 axios 进行请求时,我们可以通过配置 interceptors 来实现请求和响应的拦截。具体来说,我们可以在请求拦截器中预处理请求,而在响应拦截器中处理错误情况。下面是整个流程的步骤表格:

步骤 操作
第一步 创建一个 axios 实例
第二步 添加请求拦截器
第三步 添加响应拦截器
第四步 发起请求
第五步 处理响应结果

下面将逐步进行详细讲解每个步骤需要做的事情,并给出相应的代码示例。

第一步:创建 axios 实例

首先,我们需要在项目中安装 axios。可以使用 npm 或者 yarn 进行安装。

npm install axios

接下来,我们需要引入 axios 并创建一个实例,以便后续使用。

import axios from 'axios';

const instance = axios.create({
  baseURL: ' // 设置请求的基础URL
  timeout: 5000, // 设置请求超时时间
});

在上面的代码中,我们通过 axios.create 方法创建了一个 axios 实例,可以设置一些默认的请求配置,如基础URL和超时时间。

第二步:添加请求拦截器

在第一步创建完 axios 实例后,我们可以为该实例添加请求拦截器。请求拦截器会在请求发送之前进行拦截,我们可以在这里对请求进行一些预处理操作,如添加请求头信息等。

instance.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

在上述代码中,我们使用 interceptors.request.use 方法来添加请求拦截器。该方法接收两个参数,第一个参数是一个回调函数,用于处理请求成功的情况;第二个参数是一个回调函数,用于处理请求错误的情况。

第三步:添加响应拦截器

接下来,我们需要添加响应拦截器。响应拦截器会在接收到响应后进行拦截,我们可以在这里处理响应的数据,如对返回的错误进行统一处理。

instance.interceptors.response.use(
  response => {
    // 对响应数据做些什么
    return response;
  },
  error => {
    // 对响应错误做些什么
    return Promise.reject(error);
  }
);

与请求拦截器类似,在上述代码中,我们使用 interceptors.response.use 方法来添加响应拦截器。该方法也接收两个参数,第一个参数是一个回调函数,用于处理响应成功的情况;第二个参数是一个回调函数,用于处理响应错误的情况。

第四步:发起请求

在添加完请求和响应拦截器后,我们就可以使用 axios 实例来发送请求了。

instance.get('/api/data')
  .then(response => {
    // 处理响应结果
  })
  .catch(error => {
    // 处理错误情况
  });

上述代码中的 get 方法用于发起一个 GET 请求,并返回一个 Promise 对象,我们可以通过 then 方法来处理请求成功的情况,通过 catch 方法来处理请求错误的情况。

第五步:处理响应结果

在请求成功的情况下,我们可以在 then 方法中处理响应结果。

instance.get('/api/data