vue 在服务器端直接修改请求的接口地址


Posted in Vue.js onDecember 19, 2020

一个项目可能有很多环境,开发,测试,预生产,生产等环境,如果每一个环境都需要重新打包会显得比较麻烦,那么如何解决这个问题呢

在vue和uniapp中以及其他框架下的都是可以按照如下操作来解决的

在静态资源下新建一个env.json,vue项目是在public文件下新建,uniapp是在static下新建文件

文件格式如下

{
  "name": "development",
  "base": "/customer"
}

name,代表的是环境,方便直接在服务器上查看当前是什么环境的,base是请求的地址,如果服务器没有做代理的话,这里的base应该是完整的请求地址http:// xxxxx.com/customer,类似这种

一般人在处理的时候总是获取不到这个env.json里的地址,是因为,这里是因为异步导致的,如果要解决的话,可以在main.js或者是main.ts中如何操作

axios.get('./env.json')
 .then(function (res: any) {
  // handle success

Vue.prototype.BASE_URL = res.data.base;
  new Vue({
   router,
   store,
   render: h => h(App)
  }).$mount('#app')
 })

这样有个问题就是一定是在请求这个json成功之后项目才会开始渲染的,这个时间可以做一个加载动画,请求应该是很快的,如果请求失败,你可以在axios里做一个catch操作,给一个友好的提示什么的,进行重新请求

那么如何获取了?

可以在拦截器中进行获取然后拼接请求地址

在拦截器的那个js文件中

function getBaseUrl() {
  return Vue.prototype.BASE_URL
}

最后在传入url的时候进行拼接,如下
url: getBaseUrl() + opts.url, // opts是传过来的参数对象

就这样就可以正常请求了

一般开发环境下你env.json里可以配置你的开发地址,最后通过自动化打包部署到服务器上去之后,如果要换成其他环境(测试,预生产,生产)的地址,可以直接在服务器上直接修改这个env.json文件即可,

大功告成,哈哈

以上就是vue 在服务器端直接修改请求的接口地址的详细内容,更多关于vue 修改请求接口地址的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
Vue实现图书管理小案例
Dec 03 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
详解Vue的options
May 15 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
vue使用echarts实现折线图
Mar 21 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
vue 通过base64实现图片下载功能
Dec 19 #Vue.js
Vue中computed和watch有哪些区别
Dec 19 #Vue.js
Vue与React的区别和优势对比
Dec 18 #Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 #Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 #Vue.js
vue 数据操作相关总结
Dec 17 #Vue.js
Vue 组件注册全解析
Dec 17 #Vue.js
You might like
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现内存监控系统
2021/03/07 Python
python 正确保留多位小数的实例
2018/07/16 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
函授本科毕业生自我鉴定
2013/10/16 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL