强制修改调用接口的api地址。

最近我开始遇到一个问题。我要在一个公司封装好的前端项目中进行开发。但是他的接口请求api在request.js文件中通过baseURL写死的。我只能通过拦截件接口进行强制修改api地址。

我开始在vue.config.js文件中进行拦截。之后走代理。但是拦截不到。

通过大量问AI。终于找到了个方法:

在main.j写如下::

window.__gconf.AppServerAddress------是原先的api地址

window.__gconf.FormAddress------是改成想要的api地址

复制代码
(function() {
  // 拦截 fetch
  const originalFetch = window.fetch;
  const urlStr = window.__gconf.AppServerAddress + '/runtime/form';
  console.log('🔀 全局拦截器已启动,拦截 URL:', urlStr);
  window.fetch = function(url, options) {
    if (typeof url === 'string' && url.includes(urlStr)) {
      url = url.replace(window.__gconf.AppServerAddress, window.__gconf.FormAddress);
      console.log('🔀 Fetch 重写:', url);
    }
    return originalFetch.call(this, url, options);
  };

  // 拦截 XMLHttpRequest
  const originalOpen = XMLHttpRequest.prototype.open;
  XMLHttpRequest.prototype.open = function(method, url, ...args) {
    if (typeof url === 'string' && url.includes(urlStr)) {
      url = url.replace(window.__gconf.AppServerAddress, window.__gconf.FormAddress);
      console.log('🔀 XHR 重写:', url);
    }
    return originalOpen.call(this, method, url, ...args);
  };
  
  console.log('✅ 全局拦截器已启动');
})();
相关推荐
满栀5852 小时前
原生JS + ECharts 多图表可视化实战:从业务实现到工程化优化
开发语言·javascript·echarts
TinssonTai2 小时前
Vite 8 版 Chrome 插件全家桶,popup/options/sidepanel 一次集齐
前端·vue.js
sugar__salt4 小时前
Vue3 自定义指令与插槽(Slot)技术详解
前端·javascript·vue.js·前端框架·vue
英勇无比的消炎药4 小时前
TinyRobot DropdownMenu 下拉菜单:三种触发方式与实现原理
vue.js
Hilaku5 小时前
前端真的比后端简单吗?
前端·javascript·程序员
zhedream5 小时前
a-select / a-input 自定义下拉、Vue2 Fragment ,以及 transfer-dom
前端·vue.js
无人生还5 小时前
从 Vue3 到 React · 快速上手系列第 10 篇:路由
前端·vue.js·react.js
rememberme0015 小时前
华为云 CodeArts Pipeline前端 Vue 项目自动打包发布配置指南
前端·vue.js·华为云
默_笙5 小时前
🍔 我用 React 写了一个 TodoList,终于搞懂了"状态该放谁家"
前端·javascript
A24207349305 小时前
Vue.js 初学者注意事项与项目开发实践指南
前端·javascript·vue.js