json为全局变量 vue_Vue-cli开发笔记二----------接口调用、配置全局变量
我做的一个项目,本身是没用任何框架,纯手写的前端及数据交互,项目已经完结。最近学Vue,于是借用这个项目,改装成vue项目。
(一)接口问题:使用axios的调用方法,proxyTable解决开发环境跨域,遗憾的是条件限制,只能用jsonp方法
接口是jsonp解决的跨域问题。改装的时候,初期安装的axios,调用接口。
安装axios,使用它的get方法,另外配置config/index.js中的proxyTable,解决跨域问题,但只能解决开发环境下的跨域问题
1 proxyTable: {2 '/WebService': {3 target: 'http://139.196.7.54',4 pathRewrite: {5 '^/WebService': '/WebService'
6 }7 }8 }
在入口js文件main.js中引入axios,然后将axios写在了Vue方法的原型上
1 Vue.prototype.$http = axios
调用
1 this.$http.get(`/WebService/GPSAPPWebService.asmx/VehicleInfoCount?orgId=${userData.orgId}`).then(m => {
2 let data =eval(m.data)3 _this.count =data.data.Count4 _this.onlineCount =data.data.OnlineCount5 })
(二) 配置全局变量
后来发现,打包的文件接口地址有问题,地址还是相对路径,才知道proxyTable只对开发环境有用,于是开始尝试配置全局变量
根据config/dev.env.js及config/prod.env.js的文件配置,
1 var merge = require('webpack-merge')2 var prodEnv = require('./prod.env')3
4 module.exports =merge(prodEnv, {5 NODE_ENV: '"development"'
6 })
1 module.exports ={2 NODE_ENV: '"production"'
3 }
另外vue-cli在build/webpack.dev.conf.js及build/webpack.prod.conf.js中对process.env本身有定义(如下),DefinePlugin定义内容可以全局使用
1 //build/webpack.dev.conf.js
2 newwebpack.DefinePlugin({3 'process.env': config.dev.env4 })5
6 //build/webpack.prod.conf.js
7 newwebpack.DefinePlugin({8 'process.env': config.build.env9 })
在main.js文件中根据配置的参数的情况,更改api接口:生产环境用的139的地址
1 if (process.env.NODE_ENV !== 'development') {2 Vue.prototype.URL_PREFIX = 'http://139.196.7.54'
3 } else{4 Vue.prototype.URL_PREFIX = ''
5 }
调用的时候
1 this.$http.get(`${this.URL_PREFIX}/WebService/GPSAPPWebService.asmx/VehicleInfoCount?orgId=${userData.orgId}`).then(m => {
2 let data =eval(m.data)3 _this.count =data.data.Count4 _this.onlineCount =data.data.OnlineCount5 })
打包出来后,发现get方法还是有问题,因为接口是约定的是jsop格式,这里虽然开发环境解决了,并且设置环境变量,使生产环境接口地址请求正确,但是还是访问不到,悲了个催
(三)接口问题之二:转用jsonp:https://github.com/mzabriskie/axios/blob/master/COOKBOOK.md#jsonp
悲了个催,当时用axios百度时说没有jsonp方法,所以我就凑合用用了,这次一百度,发现有了
npm安装jsonp,并使用就行。于是接口全部改了
main.js引入及原型链挂载
1 import jsonp from 'jsonp'
2 Vue.prototype.jsonp = jsonp
项目中使用
1 this.jsonp(`${this.URL_PREFIX}/WebService/GPSAPPWebService.asmx/VehicleInfoCount?orgId=${userData.orgId}`, null, (err, m) => {
2 if(err) {3 console.error(err.message)4 } else{5 console.log(m)6 let data =m.data7 _this.count =data.Count8 _this.onlineCount =data.OnlineCount9 }10 })
又想到这个时候,接口就访问的是一致的了,那就不需要配置什么环境变量了,于是就把上面main.js中根据process.env.NODE_ENV设置不同的URL_PREFIX改成了如下
1 Vue.prototype.URL_PREFIX = 'http://139.196.7.54'
于是开发环境和生产环境都好了。。。。真是弯弯绕
遇到过这种报错,其实是端口号被占用了
json为全局变量 vue_Vue-cli开发笔记二----------接口调用、配置全局变量相关推荐
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云 邮箱: h ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- iOS工程开发笔记二
iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...
- 微信小程序开发笔记二(WXSS和CSS样式美化)
微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...
- [安卓开发笔记二]android Studio通过jni调用C++代码
[安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7707628 作者:毛星云 邮箱: happ ...
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7555785 作者:毛星云 邮箱: h ...
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7496200 作者:毛星云 邮箱: h ...
最新文章
- Intel GPU实现游戏与数据中心
- 系列笔记 | 深度学习连载(5):优化技巧(下)
- bzoj 1597 土地购买
- 谷歌控制面板中的NetWrok
- es管理kabina_小白学ES 05 - 通过Kibana管理集群服务
- 百度入股电商直播服务商“卡美啦” 备战2020年双11
- Redis-主从配置
- mysql的select复合查询语法_MySQL(九)之数据表的查询详解(SELECT语法)二
- android状态栏虚拟按键适配,Android开发笔记——透明状态栏与透明虚拟按键
- “牙医”教你用450行Go代码自制编程语言 | Gopher Daily (2021.01.15) ʕ◔ϖ◔ʔ
- 服务器主板检测卡显示06,主板检测卡代码大全对照表
- VS如何安装到电脑上
- excel转置怎么操作_EXCEL技巧-行列快速转换
- python3输入列表_[Python3] 列表的基本用法[TZZ]
- 【Love2d从青铜到王者】第十五篇:Love2d之角度和距离(Angles and distance)
- mac之间快速传递文件-from-jianshu-狂奔的胖蜗牛
- VS Studio和VS Code,IntelliJ IDEA的护眼背景色设置
- 获取手机的设备信息和唯一ID
- Java SE Development Kit 9.0.4 的下载安装及配置
- 100 多个免费 API 接口分享,先收藏,以后总用得着
热门文章
- 程序员初涉江湖 宜步步为赢(转-2) 作者:IT168 职业发展顾问Leo
- oopc——3.封装
- 8个球放入3个盒子方式_盒子这样做皮薄如纸,不露馅超好吃,孩子一口气吃好几个...
- PostgreSQL的pg_basebackup备份恢复详解
- 实战演练丨Oracle死锁案例分析,看完你就懂了
- 罗海雄:仅仅使用AWR做报告? 性能优化还未入门(含PPT)
- IoT平台如何实现业务配置中心
- CWE视图层级关系解析:节点关系查询
- 云图说|威胁检测服务赐您“火眼金睛” ,让潜在威胁无处遁行
- VEGA:诺亚AutoML高性能开源算法集简介