当前位置:首页 > VUE

vue实现请求拦截

2026-01-18 11:23:13VUE

请求拦截的实现方式

在Vue项目中,可以通过axios的拦截器(interceptor)功能实现请求拦截。axios拦截器分为请求拦截和响应拦截,用于在请求发送前或响应返回后统一处理逻辑。

vue实现请求拦截

安装axios

确保项目中已安装axios。若未安装,可通过以下命令安装:

vue实现请求拦截

npm install axios

创建axios实例并配置拦截器

在Vue项目的src目录下创建utils/request.js文件,配置axios实例和拦截器:

import axios from 'axios';

const service = axios.create({
  baseURL: 'https://api.example.com', // 根据实际API地址修改
  timeout: 5000 // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 在发送请求前可修改config,例如添加token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    // 请求错误处理
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 对响应数据统一处理
    return response.data;
  },
  error => {
    // 响应错误处理(如HTTP状态码非200)
    if (error.response.status === 401) {
      // 跳转到登录页
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

export default service;

在Vue组件中使用拦截器

在需要发起请求的组件中,导入配置好的axios实例:

import request from '@/utils/request';

export default {
  methods: {
    fetchData() {
      request.get('/user/info').then(response => {
        console.log(response);
      }).catch(error => {
        console.error(error);
      });
    }
  }
}

拦截器的常见应用场景

  • 添加全局请求头:如自动添加Authorization token。
  • 请求参数处理:统一序列化请求参数。
  • 响应数据格式化:提取后端返回的通用数据结构。
  • 错误统一处理:根据HTTP状态码跳转页面或提示错误信息。

注意事项

  • 拦截器的config对象包含请求的URL、方法、headers等配置,需确保修改后返回该对象。
  • 错误处理中建议使用Promise.reject传递错误,便于组件中捕获。
  • 对于大型项目,可将拦截器逻辑拆分为独立模块,便于维护。

标签: vue
分享给朋友:

相关文章

vue组件的实现

vue组件的实现

Vue 组件的实现方式 Vue 组件可以通过多种方式实现,以下是常见的几种方法: 单文件组件 (SFC) 使用 .vue 文件,包含模板、脚本和样式三部分: <template>…

vue实现按钮组轮换

vue实现按钮组轮换

实现按钮组轮换的方法 在Vue中实现按钮组轮换效果可以通过动态绑定类和事件处理来完成。以下是一种常见的实现方式: 模板部分 <template> <div class="bu…

vue手写签名如何实现

vue手写签名如何实现

实现手写签名的基本思路 在Vue中实现手写签名功能,通常需要借助HTML5的Canvas API来捕获用户的绘制操作。核心流程包括初始化画布、监听触摸/鼠标事件、记录轨迹以及生成签名图片。 安装依…

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组…

vue实现生成二维码

vue实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…