当前位置:首页 > VUE

vue实现http拦截

2026-02-10 23:17:44VUE

Vue 中实现 HTTP 拦截

在 Vue 中,通常通过 axios 库实现 HTTP 请求拦截。以下是具体实现方法:

安装 axios

通过 npm 或 yarn 安装 axios:

npm install axios

yarn add axios

创建 axios 实例并设置拦截器

在项目中创建一个单独的文件(如 http.js)来配置 axios 实例和拦截器:

import axios from 'axios';

const http = axios.create({
  baseURL: 'https://api.example.com', // 设置基础 URL
  timeout: 5000, // 设置超时时间
});

// 请求拦截器
http.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
http.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    return response.data;
  },
  (error) => {
    // 对响应错误做点什么
    if (error.response) {
      switch (error.response.status) {
        case 401:
          // 处理未授权情况
          break;
        case 404:
          // 处理未找到资源情况
          break;
        default:
          // 其他错误处理
      }
    }
    return Promise.reject(error);
  }
);

export default http;

在 Vue 组件中使用

在 Vue 组件中导入配置好的 axios 实例并使用:

import http from './http';

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

全局挂载 axios

如果需要全局使用,可以在 main.js 中挂载到 Vue 原型上:

import Vue from 'vue';
import http from './http';

Vue.prototype.$http = http;

之后在组件中可以直接使用:

this.$http.get('/data')
  .then(response => {
    console.log(response);
  });

注意事项

  • 拦截器的顺序很重要,先添加的拦截器会后执行。
  • 确保在请求拦截器中返回 config 对象,否则请求无法发送。
  • 响应拦截器中可以根据业务需求统一处理错误,如 token 过期跳转登录页。

通过以上方法,可以在 Vue 项目中实现 HTTP 请求和响应的拦截,统一处理授权、错误等情况。

vue实现http拦截

标签: vuehttp
分享给朋友:

相关文章

vue分类实现

vue分类实现

Vue分类实现方法 在Vue中实现分类功能通常涉及数据分组、动态渲染和交互逻辑。以下是几种常见的实现方式: 基于计算属性的分类 通过计算属性对原始数据进行分组处理,适合静态或少量数据分类: com…

vue SSG实现

vue SSG实现

Vue SSG 实现方法 Vue 的静态站点生成(SSG)可以通过多种工具和框架实现,以下是几种常见的方法: 使用 VuePress VuePress 是一个基于 Vue 的静态站点生成器,适合文…

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> <…

vue 实现列表

vue 实现列表

Vue 实现列表的方法 在 Vue 中实现列表通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 指令遍历数组,渲染列表项。ite…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项…

vue 实现回复

vue 实现回复

Vue 实现回复功能 在 Vue 中实现回复功能通常涉及表单提交、数据绑定和列表渲染。以下是实现步骤和代码示例: 数据绑定与表单 <template> <div>…