跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 综合服务 > 物流仓储 > axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式

axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式

时间:2024-04-27 15:25:32 来源:网络cs 作者:亙句 栏目:物流仓储 阅读:

标签: 服务  方式  前缀  配置  实现  代理 
前言:

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

一、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  });};

本文链接:https://www.kjpai.cn/news/2024-04-27/162925.html,文章来源:网络cs,作者:亙句,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论