当前位置:首页 > VUE

vue实现http拦截

2026-02-10 23:17:44VUE

Vue 中实现 HTTP 拦截

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

安装 axios

通过 npm 或 yarn 安装 axios:

npm install axios

vue实现http拦截

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 实例并使用:

vue实现http拦截

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 请求和响应的拦截,统一处理授权、错误等情况。

标签: vuehttp
分享给朋友:

相关文章

在线脑图 vue 实现

在线脑图 vue 实现

在线脑图 Vue 实现方案 使用开源库实现 推荐使用 mind-elixir 或 jsmind 这类开源库,它们专为脑图设计且支持 Vue 集成。 安装依赖: npm install mi…

vue实现前端

vue实现前端

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

vue实现数组

vue实现数组

Vue 实现数组操作的方法 在 Vue 中,数组的操作需要特别注意响应式的问题。Vue 提供了一些方法来确保数组的变动能够触发视图更新。 响应式数组方法 Vue 对以下数组方法进行了封装,确保它们能…

vue如何实现

vue如何实现

Vue 实现方法 在 Vue 中实现功能通常涉及组件化开发、状态管理和响应式数据绑定。以下是几种常见的实现方式: 组件化开发 使用 Vue 的单文件组件(.vue 文件)结构,将 UI 拆分为可复用…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue导航实现

vue导航实现

Vue 导航实现方法 在 Vue 中实现导航功能通常涉及路由配置、组件设计和状态管理。以下是几种常见的实现方式: 使用 Vue Router 实现基础导航 安装 Vue Router: npm i…