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

这篇具有很好参考价值的文章主要介绍了axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

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

一、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 实例 如:文章来源地址https://www.toymoban.com/news/detail-765176.html

import request from '@/src/utils/preAppRequest.js'

// 获取待办列表
export const getList = data => {
  return request({
    url: '/app/vlanNetin/list',
    method: 'post',
    data
  });
};

到了这里,关于axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过nginx反向代理实现不同域名映射到同一台服务器的相同端口

    要在Nginx中实现不同域名映射到同一台服务器的相同端口,您可以使用Nginx的代理转发技术。 首先,您需要了解Nginx的代理转发工作原理。Nginx的代理转发是指在代理服务器(proxy server)收到一个请求时,先将请求转发给目标服务器(target server),然后将服务器的响应返回给代

    2024年02月13日
    浏览(62)
  • vue项目多个不同的服务器请求地址管理

    在vue项目开发过程中,获取不同的数据可能会出现需要请求多个不同服务器地址的域名,这个时候需要对不同域名的请求地址进行管理以及跨域的代理。 跨域配置: 在vue项目的vue.config.js文件中对devServer.proxy进行配置,如下: axios请求封装: 封装axios请求的js文件中配置如下

    2024年02月04日
    浏览(47)
  • iis配置网站服务器配置端口,如何实现IIS多个网页同一个端口?

    在Internet Information Services (IIS) 中配置多个网站共用同一个端口是可能的,但需要进行一些特定的配置。以下是实现这一目标的一般步骤: 创建多个网站: 首先,您需要在 IIS 中创建多个不同的网站。每个网站应该有自己的根目录和内容。 绑定共享端口: 在每个网站的配置中

    2024年02月13日
    浏览(73)
  • 【uniapp小程序】如何根据开发和发行,自动替换不同环境的baseUrl

    小程序调试时使用Hbuilder的运行功能,在测试环境调试;到了发行正式版时使用发行功能,baseurl需要替换到生产环境;有没有办法让代码能够识别当前使用的时运行还是发行,自动切换baseur而不是手动切换??? uni-app提供了一个全局变量process.env.NODE_ENV,当我们使用Hbuilder时

    2024年01月19日
    浏览(45)
  • 项目中引入 axios--配置代理

    跨域 同源策略:浏览器的一种安全协议,协议 主机(id/域名) 端口号 其中一个对应不上就会产生同源策略,从而产生跨域问题 解决跨域: 1、后台直接放开-----不安全 2、JS0NP ----------原理:script标签中src不受同源策略的影响(需要后端配合) 3、配置代理(常用) 问题: 前端==后端服

    2024年02月05日
    浏览(32)
  • 探索不同类型的代理服务器 (代理 IP、socks5 代理)及其在网络安全与爬虫中的应用

    1. 代理服务器简介 代理服务器是一台充当中间人的服务器,它在客户端与目标服务器之间传递网络请求。代理服务器在不同层级上可以执行不同的任务,包括缓存、过滤、负载均衡和隐藏客户端真实IP地址等。在网络安全和爬虫领域,代理服务器具有重要的作用。 2. Socks5代理

    2024年02月11日
    浏览(52)
  • nginx配置代理多个前端资源

    log: 背景 两套不同的前端使用同一个后端服务,前端使用的Nginx代理的dist包 前端 vue+elementui 后端 Python+flask Nginx代理设置 1.进入Linux机器,whereis nginx 查看Nginx安装位置  2.进到Nginx配置文件下 3.vim nginx.conf  通过多个server管理多个端口前端资源代理 #前端一,端口8080访问就可以

    2023年04月09日
    浏览(40)
  • vue 环境配置并配置打包命令(多个代理地址)。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1.在src同级目录下新建以下三个文件: 注意:文件名是固定的不要自定义。 属性名必须以 VUE_APP_ 开头,如:VUE_APP_XXX vue 会根据启动命令自动加载相对应的环境配置文件。vue是根据文件名进行加载的,所

    2024年02月11日
    浏览(51)
  • Git 配置SSH,多个 Github 账号配置不同的SSH KEY

    首先做个说明 生成一对默认的私钥公钥,私钥自己客户端留着用,公钥可以给多个平台用。 多对私钥公钥,主要是应对一个平台多个账号的情况。当然你想每个平台使用不同的私钥公钥也是可以的。 多次生成私钥公钥需要自己重新命名,否则会覆盖之前的。 一、查看是否已

    2024年02月07日
    浏览(67)
  • Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上

    部署MysqlCluster集群环境 MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上,提高系统的性能和可扩展性。 MySQL集群Cluster使用多个服务器来存储数据,因此需要确保数据在不同的服务器之间同步。MySQL集群Cluster使用

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包