当前位置:首页 > VUE

vue axios 如何实现拦截

2026-02-21 21:48:42VUE

请求拦截与响应拦截的实现

在Vue项目中,Axios拦截器通过interceptors属性实现,分为请求拦截(request)和响应拦截(response)。以下为具体配置方法:

安装Axios

vue axios 如何实现拦截

npm install axios

请求拦截器

请求拦截器在请求发送前执行,常用于添加统一请求头、认证token或修改请求参数:

vue axios 如何实现拦截

import axios from 'axios';

// 创建实例
const instance = axios.create({
  baseURL: 'https://api.example.com'
});

// 请求拦截
instance.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

响应拦截器

响应拦截器在接收到响应后执行,常用于统一处理错误状态码或数据格式:

instance.interceptors.response.use(
  response => {
    // 对2xx状态码处理
    if (response.status === 200) {
      return response.data;
    }
    return response;
  },
  error => {
    // 对非2xx状态码处理
    if (error.response.status === 401) {
      router.push('/login');
    }
    return Promise.reject(error);
  }
);

全局拦截与实例拦截的区别

  • 全局拦截:通过axios.interceptors直接修改,影响所有请求
  • 实例拦截:通过自定义实例实现,适合不同API地址的差异化处理

拦截器移除方法

需保存拦截器ID以便后续移除:

const reqInterceptor = instance.interceptors.request.use(...);
instance.interceptors.request.eject(reqInterceptor);

典型应用场景

  1. Token自动刷新:在401错误时自动刷新token并重试请求
  2. 请求加密:拦截请求数据统一加密处理
  3. 加载状态管理:通过拦截器控制全局loading状态显示
  4. 数据格式化:统一处理返回数据格式

注意:拦截器中异步操作需返回Promise链,避免阻塞请求流程。错误处理必须调用Promise.reject向外传递错误。

标签: 如何实现vue
分享给朋友:

相关文章

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-se…

vue 实现权限

vue 实现权限

Vue 实现权限控制的方法 在 Vue 项目中实现权限控制通常涉及前端路由、组件和按钮级别的权限管理。以下是几种常见的实现方式: 路由权限控制 通过路由守卫实现权限验证,过滤用户无权访问的路由:…

vue实现granfana

vue实现granfana

Vue 实现类似 Grafana 的仪表盘 要在 Vue 中实现类似 Grafana 的仪表盘功能,需要结合数据可视化库、状态管理和 UI 组件。以下是关键步骤和推荐工具: 数据可视化库 使用…

vue实现vnc

vue实现vnc

Vue 实现 VNC 客户端 在 Vue 项目中实现 VNC 客户端功能,可以通过集成现有的 VNC 客户端库或组件完成。以下是具体实现方法: 安装依赖库 使用 noVNC 或其他 VNC 客…

vue实现购票

vue实现购票

Vue 实现购票功能 数据结构设计 购票功能通常需要以下数据结构: 场次信息(时间、地点、价格) 座位信息(可选座位、已售座位) 用户订单信息 示例数据结构: data() { return…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…