vue项目中如何调用多个不同的ip接口
作者:曾经的你d 发布时间:2024-04-10 10:32:37
标签:vue,调用,ip,接口
如何调用多个不同的ip接口
灵感来源:
项目的登录登出权限是调A的ip下面的接口,其他的功能调的接口是B的ip下面的接口
思路:
其实就是多写几个request.js文件罢了,或者在一个文件里面多写几个响应拦截和请求拦截.
上代码:
第一个文件
request.js
import axios from 'axios'
import Vue from 'vue'
if(process.env.NODE_ENV == "development"){//开发环境
axios.defaults.baseURL = 'http://xxxxxx/air/';
}else if(process.env.NODE_ENV == "production"){
axios.defaults.baseURL = '/air/api'; // 生产环境
}
const service = axios.create({
timeout: 20000,
})
// 请求拦截
service.interceptors.request.use(
config => {
return config;
},
error => {
// 请求错误处理.......
}
)
// 响应拦截
service.interceptors.response.use(
response =>{
//响应结果处理.......
},
error => {
// 请求错误处理.......
}
)
export default service
第二个文件
requestSec.js
import axios from 'axios'
import Vue from 'vue'
if(process.env.NODE_ENV == "development"){//开发环境
axios.defaults.baseURL = 'http://xxxxxx/air/';
}else if(process.env.NODE_ENV == "production"){
axios.defaults.baseURL = '/air/api'; // 生产环境
}
const sec = axios.create({
timeout: 20000,
})
// 请求拦截
sec.interceptors.request.use(
config => {
return config;
},
error => {
// 请求错误处理.......
}
)
// 响应拦截
sec.interceptors.response.use(
response =>{
//响应结果处理.......
},
error => {
// 请求错误处理.......
}
)
export default sec
哎?你会发现这两个文件不是一样的吗,对,就是一样的,只不过是声明了两个请求拦截和响应拦截罢了.你也可以放到一个文件里面.都一样.
第三个文件
封装的接口文件
import axios from './request'
import sec from './requestSec'
// 登录
export function login(data) {
return sec({
method:'post',
url:'system/login',
data,
})
}
// 分页查询所有管辖区域
export function queryWithPageAll(params) {
return axios({
method:'get',
url:'area/queryAll',
params
})
}
到这里就可以看出不一样了,如果要调用request里面ip下面的接口就return axios 如果要调用requestSec里面ip下面的接口就return sec
其他就是正常的了,哪个页面调用就正常调用就可以了.
设置自动配置不同环境接口
1.再根目录新建一个文件夹configenv
在文件夹下新建baseServerConfig.js
module.exports = {
// 本地环境设置 测试接口的地址
"localhost:8010": {
mallUrl: 'http://202.108.22.5:8000',
storeHouseUrl: 'http://202.108.22.103:8080',
},
// 本地IP环境设置 测试接口的地址
"10.12.5.46:8010": {
mallUrl: 'http://202.108.22.5:8000',
storeHouseUrl: 'http://202.108.22.103:8080',
},
// 测试环境设置 测试接口的地址
"22.81.24.60:8080": {
mallUrl: 'http://202.108.22.5:8000',
storeHouseUrl: 'http://202.108.22.103:8080',
},
// UAT环境设置 UAT接口地址
"uat.baidu.com": {
mallUrl: 'http://uat.baidu.com',
storeHouseUrl: 'http://uat-init.baidu.com'
},
//生产环境设置 生产接口地址
"www.baidu.com": {
mallUrl: 'http://www.baidu.com',
storeHouseUrl: 'http://init.baidu.com'
}
}
2.在main.js 入口文件中
引入baseServerConfig,用变量接收当前的环境 对应的接口地址,把这个变量放入Vue的原型的属性上
import baseServer from '../configenv/baseServerConfig'
const mallUrl= baseServer[location.host].mallUrl
const storeHouseUrl= baseServer[location.host].storeHouseUrl
Vue.prototype.mallUrl= mallUrl;//商城地址
Vue.prototype.storeHouseUrl= storeHouseUrl;//仓库地址
3.在实际Vue页面中,接口实际调用
this.$http.get(this.mallUrl+"/api/a/b/c").then(resp =>{
// 写逻辑
})
this.$http.get(this.storeHouseUrl+"/api/abc/b/c").then(resp =>{
// 写逻辑
})
小结:这样就实现了当前环境 与 不同环境接口相互绑定,避免人员重复的切换接口环境。
从而实现了npm run build 一个包既可以放在测试环境、UAT环境和生产环境
来源:https://blog.csdn.net/m0_52539553/article/details/125990964


猜你喜欢
- 字典中元素的个数计算len(字典名)举例:person={"姓名":"张三","年龄&qu
- 前言Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的
- 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问
- 如果PyPi上搜html2text的话,找到的是另外一个库:Alir3z4/html2text。这个库是从aaronsw/html2text
- 一、概念 1. 数据库 (Database)什么是数据库?数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下
- 一、绘制折线图import seaborn as snsimport numpy as npimport pandas as pdimpor
- python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入。第一首先打开电脑的python编辑工具。再
- rs.open sql,conn:如果sql是delete,update,insert则会返回一个关闭的记录集,在使用过程中不要来个rs.c
- 引入依赖#?导入模块import?pymysqlimport?pandas?as?pdimport?numpy?as?npimport?ti
- 前言公司的Ubuntu服务器对于各个系统的目录是放在不同的逻辑分区上的,比如存放mysql数据库文件的默认目录/var/lib/mysql所
- 最近写运维自动化平台,需要用python写很多的小功能模块。这里就分享一个用Python的paramiko来实现功能的一段代码:复制远程服务
- 1. 得到安全字符串,在查询中使用,过滤单引号。Function Get_SafeStr(str) &nb
- 一、selenium截取验证码import jsonfrom io import BytesIOimport timefrom test.t
- 项目是基于vue2 的移动端项目,供大家参考,具体内容如下1、实际效果地址 * 联动 mint-ui picker.png2、首先你需要去下载
- 在写代码的时候,免不了要使用变量。但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的“有效范围”。看这样一段代码:de
- 简述一开始觉得这个很有趣,然后就想来做一个来玩一下使用语言: Python3使用工具:opencv视频监控 + socket数据传输技术程序
- 由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中,不少
- 目录创建文件夹布局编写命令代码实际应用场景案例1:检查数据库连接是否已就绪案例2:周期性发送邮件每次在启动Django服务之前,我们都会在终
- 1.mysql中or语法的使用,在mysql语法中or使用注意点。 项目遇到坑,遍历发放奖励数据查询错误!!!$sql = 'SEL
- 目录为什么需要分区?分区的策略分区隐患为什么需要分区?当面对巨大的数据表的时候,至少有一件事情是确定的,表太大了以至于每次查询的时候我们没法