当前位置:首页 > VUE

vue实现http拦截

2026-03-07 23:03:00VUE

实现HTTP拦截的方法

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

安装Axios

通过npm或yarn安装Axios依赖:

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组件中使用拦截后的实例

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

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;

组件内调用方式变为:

vue实现http拦截

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

注意事项

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

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

标签: vuehttp
分享给朋友:

相关文章

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在Vu…

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue实现骰子

vue实现骰子

Vue 实现骰子功能 创建 Vue 组件 在 Vue 项目中创建一个骰子组件,例如 Dice.vue。该组件包含骰子的外观和逻辑。 <template> <div class=…

vue实现单据

vue实现单据

Vue 实现单据功能的方法 使用 Vue 实现单据功能通常涉及表单设计、数据绑定、验证和提交等环节。以下是具体实现方案: 表单设计与数据绑定 使用 Vue 的 v-model 指令实现表单数据的双向…

vue实现driver

vue实现driver

Vue 实现 Driver.js 引导功能 Driver.js 是一个轻量级的 JavaScript 库,用于在网页上创建引导式导览。以下是在 Vue 项目中集成 Driver.js 的详细方法:…

vue实现购票

vue实现购票

Vue 实现购票功能 数据结构设计 购票功能通常需要以下数据结构: 场次信息(时间、地点、价格) 座位信息(可选座位、已售座位) 用户订单信息 示例数据结构: data() { return…