当前位置:首页 > 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 中实现定位可以通过以下几种方式: 使用 CSS 定位 通过 CSS 的 position 属性实现定位,Vue 中可以直接在组件的 <style>…

vue实现fadein

vue实现fadein

Vue 实现 FadeIn 效果 在 Vue 中实现淡入(FadeIn)效果可以通过 CSS 过渡、动画或第三方库实现。以下是几种常见方法: 使用 CSS 过渡 通过 Vue 的过渡系统结合 CSS…

vue 实现表单

vue 实现表单

Vue 表单实现方法 Vue.js 提供了多种方式实现表单,包括双向数据绑定、表单验证和动态表单生成。以下是常见的实现方法: 基础表单绑定 使用 v-model 指令实现表单元素与数据的双向绑定:…

vue实现前端

vue实现前端

Vue 实现前端的核心方法与步骤 安装 Vue 项目 使用 Vue CLI 或 Vite 创建项目。Vue CLI 是传统构建工具,Vite 是新一代轻量级工具。 npm init vue@la…

vue实现接口

vue实现接口

在 Vue 中实现接口请求 Vue 本身不直接提供 HTTP 请求功能,通常需要借助第三方库如 axios 或 fetch 来实现接口请求。以下是几种常见方法: 使用 axios 发送请求 安装 a…

vue实现浮标

vue实现浮标

Vue 实现浮动按钮(浮标) 使用 Vue 实现浮动按钮可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 定位和 Vue 组件 创建 Vue 组件并配合 CSS 固定定位实现浮动按钮:…