我做的一个项目,本身是没用任何框架,纯手写的前端及数据交互,项目已经完结。最近学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开发笔记二----------接口调用、配置全局变量相关推荐

  1. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  2. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云    邮箱: h ...

  3. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  4. iOS工程开发笔记二

    iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...

  5. 微信小程序开发笔记二(WXSS和CSS样式美化)

    微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...

  6. [安卓开发笔记二]android Studio通过jni调用C++代码

    [安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...

  7. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7707628 作者:毛星云 邮箱: happ ...

  8. 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7555785 作者:毛星云    邮箱: h ...

  9. 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7496200 作者:毛星云    邮箱: h ...

最新文章

  1. Intel GPU实现游戏与数据中心
  2. 系列笔记 | 深度学习连载(5):优化技巧(下)
  3. bzoj 1597 土地购买
  4. 谷歌控制面板中的NetWrok
  5. es管理kabina_小白学ES 05 - 通过Kibana管理集群服务
  6. 百度入股电商直播服务商“卡美啦” 备战2020年双11
  7. Redis-主从配置
  8. mysql的select复合查询语法_MySQL(九)之数据表的查询详解(SELECT语法)二
  9. android状态栏虚拟按键适配,Android开发笔记——透明状态栏与透明虚拟按键
  10. “牙医”教你用450行Go代码自制编程语言 | Gopher Daily (2021.01.15) ʕ◔ϖ◔ʔ
  11. 服务器主板检测卡显示06,主板检测卡代码大全对照表
  12. VS如何安装到电脑上
  13. excel转置怎么操作_EXCEL技巧-行列快速转换
  14. python3输入列表_[Python3] 列表的基本用法[TZZ]
  15. 【Love2d从青铜到王者】第十五篇:Love2d之角度和距离(Angles and distance)
  16. mac之间快速传递文件-from-jianshu-狂奔的胖蜗牛
  17. VS Studio和VS Code,IntelliJ IDEA的护眼背景色设置
  18. 获取手机的设备信息和唯一ID
  19. Java SE Development Kit 9.0.4 的下载安装及配置
  20. 100 多个免费 API 接口分享,先收藏,以后总用得着

热门文章

  1. 程序员初涉江湖 宜步步为赢(转-2) 作者:IT168 职业发展顾问Leo
  2. oopc——3.封装
  3. 8个球放入3个盒子方式_盒子这样做皮薄如纸,不露馅超好吃,孩子一口气吃好几个...
  4. PostgreSQL的pg_basebackup备份恢复详解
  5. 实战演练丨Oracle死锁案例分析,看完你就懂了
  6. 罗海雄:仅仅使用AWR做报告? 性能优化还未入门(含PPT)
  7. IoT平台如何实现业务配置中心
  8. CWE视图层级关系解析:节点关系查询
  9. 云图说|威胁检测服务赐您“火眼金睛” ,让潜在威胁无处遁行
  10. VEGA:诺亚AutoML高性能开源算法集简介