当前位置:首页 > VUE

vue axios 如何实现拦截

2026-02-21 21:48:42VUE

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

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

安装Axios

npm install axios

请求拦截器

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

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以便后续移除:

vue axios 如何实现拦截

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

典型应用场景

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

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

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

相关文章

vue实现pwa

vue实现pwa

Vue 实现 PWA 的步骤 Vue 结合 PWA(Progressive Web App)可以创建离线可用的 Web 应用。以下是实现方法: 安装 Vue CLI 并创建项目 确保已安装 Vue…

vue系统实现

vue系统实现

Vue 系统实现的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装核心依赖(如 Vue 3、Vue Router、Pinia)。配置开发环境(如 ESLint、Prett…

vue实现天猫

vue实现天猫

Vue实现天猫首页功能 使用Vue.js实现类似天猫的电商首页需要结合多个技术点,包括组件化开发、路由管理、状态管理、API调用等。以下是关键实现步骤: 项目初始化 创建Vue项目并安装必要依赖:…

vue实现路线导航

vue实现路线导航

Vue 实现路由导航的方法 在 Vue 中实现路由导航通常使用 Vue Router 库,它是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的实现方式: 安装 Vue…

vue多进程实现

vue多进程实现

Vue 多进程实现方法 Vue.js 本身是前端框架,通常在浏览器单线程环境中运行。若需实现多进程能力,需结合后端技术或浏览器特性。以下是几种常见实现方案: Web Worker 并行计算 利用浏览…

设计与实现vue

设计与实现vue

Vue 设计与实现概述 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心设计理念包括响应式数据绑定、组件化开发和虚拟 DOM 渲染。以下是 Vue 设计与实现的关键点。 核…