axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式
创始人
2025-01-20 22:36:18
0
前言:

在开发中,有可能遇到每部分的功能的需要调用另一台服务器的地址。这个时候就需要设置不同的请求前缀首先代理到不同的服务器地址。

一、axios封装实例以及代理:(不是完整的封装实例,重点在于baseURL的区别)

文件路径:/CMDB/src/utils/request.js

import axios from 'axios';   const defaultConfig = {   timeout: 5 * 1000,   baseURL:'/api'  // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!! };  const instance = axios.create(Object.assign({}, defaultConfig));  instance.interceptors.request.use(   function (config) {     ...     return config;   },   function (error) {     return Promise.reject(error);   } ); instance.interceptors.response.use(   function (response) {     ...   },   function (error) {     ...     return Promise.reject(error);   } ); export default instance;

代理的时候有两个前缀,根据前缀代理到不同的服务器 (我这里是vite的配置)

server: {   host: '0.0.0.0',   //tip: when change this, you may need to change src/config either.   proxy: {     '/api': {       // http://192.168.31.53:5173/       target: 'http://192.168.31.199:18777/',       changeOrigin: true,       rewrite: path => path.replace(/^\/api/, '')     },     '/app': {       target: 'http://125.124.5.117:12877/',       changeOrigin: true     }   } }
二、第一种:请求的时候传入参数覆盖默认的baseUrl
import request from '@/src/utils/request.js'  // 获取IP列表 (这个会默认用前缀 '/api') export const getList = data => {   return request({     url: '/ipv6/list',     method: 'post',     data   }); };   // 获取IP列表  (手动加另一个前缀 '/app') export const getList = data => {   return request({     url: '/ipNetin/list',     baseURL: '/app', // 这个 baseURL 会覆盖实例中默认的 baseURL     method: 'post',     data   }); };

三、第二种:新封装一个axios实例

文件路径:/CMDB/src/utils/preAppRequest.js

import axios from 'axios';   const defaultConfig = {   timeout: 5 * 1000,   baseURL:'/app'  };  const instance = axios.create(Object.assign({}, defaultConfig));  instance.interceptors.request.use(   function (config) {     ...     return config;   },   function (error) {     return Promise.reject(error);   } ); instance.interceptors.response.use(   function (response) {     ...   },   function (error) {     ...     return Promise.reject(error);   } ); export default instance;

需要请求到前缀 /api 的服务器的时候 就引入 request 实例

需要请求到前缀 /app 的服务器的时候 就引入 preAppRequest 实例 如:

import request from '@/src/utils/preAppRequest.js'  // 获取待办列表 export const getList = data => {   return request({     url: '/app/vlanNetin/list',     method: 'post',     data   }); };

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...