当前位置:首页 > 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 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除操…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

轮播vue实现

轮播vue实现

使用 Vue 实现轮播功能 基础轮播实现 安装依赖(如使用 Swiper): npm install swiper vue-awesome-swiper 组件代码示例: <templ…

vue实现word文档实现预览

vue实现word文档实现预览

在Vue中实现Word文档预览可以通过多种方式实现,以下是几种常见的方法: 使用mammoth.js库 mammoth.js是一个将Word文档(.docx)转换为HTML的JavaScript库,…

vue实现流程转化

vue实现流程转化

Vue 实现流程转化 在 Vue 中实现流程转化通常涉及多个步骤,包括状态管理、组件通信和动态渲染。以下是几种常见的实现方法: 使用 Vuex 进行状态管理 Vuex 是 Vue 的官方状态管理库,…

实现vue页面回退

实现vue页面回退

监听浏览器返回事件 在Vue组件中使用beforeRouteLeave导航守卫,可以监听路由变化。该方法在离开当前路由前触发,适用于需要确认或保存数据的场景。 beforeRouteLeave(…