当前位置:首页 > VUE

vue实现http拦截

2026-03-07 23:03:00VUE

实现HTTP拦截的方法

在Vue中实现HTTP拦截通常使用Axios库,因其内置拦截器功能。以下为具体实现方式:

安装Axios

通过npm或yarn安装Axios依赖:

vue实现http拦截

npm install axios
# 或
yarn add axios

创建Axios实例并添加拦截器

在项目入口文件(如main.js)或单独的工具文件中配置拦截器:

import axios from 'axios';

// 创建实例
const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 5000
});

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

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

// 导出实例供全局使用
export default instance;

在Vue组件中使用拦截后的实例

在组件中直接导入配置好的实例发起请求:

vue实现http拦截

import http from '@/utils/axios'; // 假设实例文件路径

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

可选:全局挂载实例

如需全局调用,可在main.js中将实例挂载到Vue原型上:

import Vue from 'vue';
import axiosInstance from './utils/axios';

Vue.prototype.$http = axiosInstance;

组件内调用方式变为:

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

注意事项

  • 请求/响应数据处理:拦截器中需确保返回正确的config或data对象。
  • 错误处理:建议在拦截器和具体请求中同时处理错误,避免遗漏。
  • 取消请求:可通过CancelToken实现请求取消逻辑。

通过以上步骤,可完整实现Vue项目中的HTTP请求和响应拦截功能。

标签: vuehttp
分享给朋友:

相关文章

vue拖拽实现

vue拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…

vue实现日历

vue实现日历

Vue 实现日历的基本方法 使用 Vue 实现日历可以通过自定义组件或借助第三方库完成。以下是两种常见实现方式: 自定义日历组件 创建基于 Vue 的日历组件需要处理日期计算和渲染逻辑。核心是生成当…

vue数据劫持实现

vue数据劫持实现

Vue 数据劫持的实现原理 Vue 的数据劫持主要通过 Object.defineProperty 或 Proxy 实现,用于监听数据变化并触发视图更新。以下是核心实现方式: 使用 Object.d…

vue cli实现原理

vue cli实现原理

Vue CLI 实现原理 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,其核心实现原理可以分为以下几个部分: 核心架构 Vue CLI 采用插件化架构,通过 @vue/cli 提…

vue前端怎么实现

vue前端怎么实现

Vue 前端实现方法 Vue 是一款流行的前端框架,用于构建用户界面。以下是一些常见的实现方法和步骤: 安装 Vue 通过 npm 或 yarn 安装 Vue: npm install vue 或…

vue 实现手册

vue 实现手册

Vue 实现手册 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是一些关键实现方法和最佳实践。 安装与初始化 通过 npm 或 yarn 安装 Vue.js: np…