当前位置:首页 > VUE

vue axios 如何实现拦截

2026-01-21 06:19:16VUE

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

在Vue项目中,使用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 => {
    // 对响应数据做处理(例如提取data字段)
    return response.data;
  },
  error => {
    // 统一错误处理(例如401跳转登录)
    if (error.response.status === 401) {
      router.push('/login');
    }
    return Promise.reject(error);
  }
);

拦截器移除

如需移除拦截器,保存拦截器ID后调用eject

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

实际应用示例

结合Vue的全局配置:

// main.js
axios.interceptors.request.use(...);
axios.interceptors.response.use(...);
Vue.prototype.$http = axios;

在组件中直接使用:

vue axios 如何实现拦截

this.$http.get('/user').then(...)

通过拦截器可以实现日志记录、Loading状态管理、请求重试等高级功能,注意避免在拦截器中执行耗时操作以免阻塞请求流程。

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

相关文章

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name:…

vue alert实现

vue alert实现

使用 Vue 实现 Alert 组件 在 Vue 中实现 Alert 组件可以通过自定义组件或结合第三方库完成。以下是几种常见方法: 自定义 Alert 组件 创建一个可复用的 Alert 组件,通…

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

vue实现机制

vue实现机制

Vue 实现机制的核心原理 Vue.js 的核心实现机制主要基于响应式系统、虚拟 DOM 和组件化设计。以下是关键实现细节: 响应式系统 Vue 通过 Object.defineProperty(V…

vue 实现协同

vue 实现协同

Vue 实现协同编辑的方案 协同编辑指多个用户同时编辑同一文档并实时同步更改。Vue 结合相关库和技术可轻松实现该功能。 使用 WebSocket 实现实时通信 WebSocket 提供全双工通信,…

mui实现vue

mui实现vue

mui 实现 Vue 的步骤 mui 是一个轻量级的前端框架,常用于移动端开发。结合 Vue 可以实现高效的开发体验。以下是具体实现方法。 安装 mui 和 Vue 通过 npm 或 yarn 安装…