Vue-cli proxyTable 解决开发环境的跨域问题详解


Posted in Javascript onMay 18, 2017

和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆办法,查了一堆资料,加了一堆参数,最后还得我把自己的localhost映射成上线时将要使用的域名。

今天翻看代码时,突然发现vue-cli的config文件里有一个参数叫proxyTable,看这个名字就感觉能解决问题,于是我就去搜了一下,果然。在vuejs-templates,也就是vue-cli的使用的模板插件里,有关于API proxy的说明,使用的就是这个参数。

https://vuejs-templates.github.io/webpack/proxy.html

这个参数主要是一个地址映射表,你可以通过设置将复杂的url简化,例如我们要请求的地址是api.xxxxxxxx.com/list/1,可以按照如下设置:

proxyTable: {
 '/list': {
  target: 'http://api.xxxxxxxx.com',
  pathRewrite: {
   '^/list': '/list'
  }
 }
}

这样我们在写url的时候,只用写成/list/1就可以代表api.xxxxxxxx.com/list/1.

那么又是如何解决跨域问题的呢?其实在上面的'list'的参数里有一个changeOrigin参数,接收一个布尔值,如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求,这样就不会有跨域问题了,当然这只适用于开发环境。增加的代码如下所示:

proxyTable: {
 '/list': {
  target: 'http://api.xxxxxxxx.com',
  changeOrigin: true,
  pathRewrite: {
   '^/list': '/list'
  }
 }
}

vue-cli的这个设置来自于其使用的插件http-proxy-middleware

github:https://github.com/chimurai/http-proxy-middleware

深入了解的话可以看该插件配置说明,似乎还支持websocket,很强大的插件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery对表单操作2
Apr 06 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
2014 HTML5/CSS3热门动画特效TOP10
Dec 07 Javascript
JS动态添加Table的TR,TD实现方法
Jan 28 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
layui导航栏实现代码
May 19 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
vue嵌套路由与404重定向实现方法分析
May 04 Javascript
vue.js仿hover效果的实现方法示例
Jan 28 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
Vue.js中的高级面试题及答案
Jan 13 Javascript
Vue双向数据绑定(MVVM)的原理
Oct 03 Javascript
Javascript实现倒计时时差效果
May 18 #Javascript
vue-cli webpack 开发环境跨域详解
May 18 #Javascript
JavaScript实现简单的星星评分效果
May 18 #Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 #Javascript
Javascript实现信息滚动效果
May 18 #Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 #Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 #Javascript
You might like
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
深入理解Javascript中的this关键字
2015/03/27 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python获取任意xml节点值的方法
2015/05/05 Python
python简单实现基数排序算法
2015/05/16 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
车间班组长岗位职责
2013/11/13 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
仓库管理制度
2014/01/21 职场文书
技能比赛获奖感言
2014/02/14 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
考察现实表现材料
2014/05/19 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
母亲去世追悼词
2015/06/23 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
Mysql数据库命令大全
2021/05/26 MySQL