当前位置:首页 > VUE

vue实现请求拦截

2026-01-18 11:23:13VUE

请求拦截的实现方式

在Vue项目中,可以通过axios的拦截器(interceptor)功能实现请求拦截。axios拦截器分为请求拦截和响应拦截,用于在请求发送前或响应返回后统一处理逻辑。

安装axios

确保项目中已安装axios。若未安装,可通过以下命令安装:

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的结合 在Vue中实现多线程通常通过Web Worker技术完成。Web Worker允许在后台线程中运行脚本,避免阻塞主线程,适合处理计算密集型任务。 使用Web Worker的…

vue实现列表显示

vue实现列表显示

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

vue使用vr实现标注

vue使用vr实现标注

Vue 中使用 VR 实现标注的方法 在 Vue 项目中结合 VR 技术实现标注功能,可以通过 WebXR 和 Three.js 等库实现。以下为具体实现方法: 安装依赖 确保项目中已安装 Thr…

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <templ…

用vue实现滑动输入条

用vue实现滑动输入条

使用 Vue 实现滑动输入条 使用原生 HTML5 input range 实现 在 Vue 模板中直接使用 <input type="range">,通过 v-model 绑定数据:…

vue实现mvc

vue实现mvc

Vue 实现 MVC 模式 Vue 本身是一个 MVVM(Model-View-ViewModel)框架,但可以通过结构调整实现 MVC(Model-View-Controller)模式。以下是具体实…