当前位置:首页 > 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使用vr实现标注

vue使用vr实现标注

Vue 中使用 VR 实现标注的方法 在 Vue 项目中结合 VR 技术实现标注功能,可以通过 WebXR 和 Three.js 等库实现。以下为具体实现方法: 安装依赖 确保项目中已安装 Thre…

vue实现注册

vue实现注册

Vue 实现注册功能 注册功能通常涉及前端表单、数据验证、与后端 API 的交互等步骤。以下是一个完整的 Vue 实现注册功能的方案。 创建注册表单 使用 Vue 的模板语法创建注册表单,包含用户名…

vue 实现上传

vue 实现上传

Vue 实现文件上传 使用 Vue 实现文件上传可以通过原生 HTML 的 <input type="file"> 或第三方库(如 axios、vue-upload-component)完…

vue如何实现登录

vue如何实现登录

实现登录功能的基本步骤 使用Vue实现登录功能通常需要结合后端API、状态管理以及路由控制。以下是常见的实现方式: 创建登录表单组件 在Vue组件中构建包含用户名和密码输入框的表单: <te…

vue如何实现id

vue如何实现id

在 Vue 中实现 ID 绑定 Vue 提供了多种方式为元素或组件绑定唯一的 ID,可以根据具体需求选择合适的方法。 方法一:使用 v-bind 绑定静态或动态 ID <template&g…

vue实现gif动画

vue实现gif动画

Vue 中实现 GIF 动画的方法 在 Vue 中实现 GIF 动画可以通过多种方式完成,具体取决于需求和使用场景。以下是几种常见的方法: 直接使用 <img> 标签加载 GIF 最简单…