使用axios拦截器实现请求的拦截

在前端开发中,经常会遇到需要对请求进行拦截、添加认证信息等操作的情况。axios是一个常用的HTTP客户端,可以通过拦截器来实现请求的拦截。下面将通过一个具体的示例来演示如何使用axios拦截器来拦截请求。

问题描述

假设我们需要在发送请求时,对请求头添加一个Authorization字段,以实现接口的鉴权。我们可以通过axios拦截器来实现这一功能。

解决方案

安装axios

首先需要安装axios,可以通过npm或者yarn来安装:

npm install axios

编写拦截器

import axios from 'axios';

// 创建axios实例
const instance = axios.create({
  baseURL: '
  timeout: 5000
});

// 请求拦截器
instance.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  config.headers.Authorization = 'Bearer token'; // 添加Authorization字段
  return config;
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error);
});

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

export default instance;

发送请求

import axios from './axios';

axios.get('/user').then(response => {
  console.log(response);
}).catch(error => {
  console.error(error);
});

流程图

flowchart TD
    A[发送请求] -->|请求拦截器| B[添加Authorization字段]
    B -->|发送请求| C[接口请求]
    C -->|响应拦截器| D[处理响应数据]
    D --> E[结束]

序列图

sequenceDiagram
    participant Client
    participant Axios
    participant Backend

    Client ->> Axios: 发送请求
    Axios ->> Axios: 请求拦截器添加Authorization字段
    Axios ->> Backend: 发送请求
    Backend -->> Axios: 返回响应数据
    Axios -->> Axios: 响应拦截器处理响应数据
    Axios -->> Client: 返回处理后的数据

通过以上示例,我们演示了如何使用axios拦截器来拦截请求并对请求进行处理。拦截器可以方便地统一处理请求和响应,使代码更加清晰和易维护。希望本文对你有所帮助。