当前位置:首页 > 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实现本地数据存储

使用 localStorage 或 sessionStorage Vue 中可以直接调用浏览器提供的 localStorage 或 sessionStorage API 进行数据存储。localSto…

vue实现波形

vue实现波形

实现波形效果的方法 在Vue中实现波形效果可以通过多种方式完成,常见的方法包括使用Canvas绘制、CSS动画或第三方库。以下是几种实现方案: 使用Canvas绘制波形 通过Canvas API动态…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue拼图实现

vue拼图实现

实现 Vue 拼图游戏的方法 使用 Vue 组件和动态数据绑定 创建一个 Vue 组件来管理拼图的状态和逻辑。通过 v-for 动态渲染拼图块,利用 v-bind 绑定样式和位置。拼图块的数据可以存储…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…

vue实现分站

vue实现分站

Vue 实现分站的方案 在 Vue 中实现分站功能通常涉及路由配置、环境变量管理和动态加载资源。以下是几种常见的实现方式: 基于路由的分站实现 通过 Vue Router 配置多路由,区分不同站点的…