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 相关文章推荐
javascript 跳转代码集合
Dec 03 Javascript
Fixie.js 自动填充内容的插件
Jun 28 Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
Feb 08 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
JavaScript  event对象整理及详细介绍
Oct 10 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
layui内置模块layim发送图片添加加载动画的方法
Sep 23 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 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
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
Python中线程编程之threading模块的使用详解
2015/06/23 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
实习医生自我评价
2013/09/22 职场文书
物业管理个人自我评价
2013/11/08 职场文书
师范大学毕业自我鉴定
2013/11/21 职场文书
先进事迹报告会感言
2014/01/24 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
2015中秋祝酒词
2015/08/12 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书