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 相关文章推荐
extjs fckeditor集成代码
May 10 Javascript
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
Jan 05 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
Nuxt.js踩坑总结分享
Jan 18 Javascript
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
js实现鼠标点击飘爱心效果
Aug 19 Javascript
微信小程序选择图片控件
Jan 19 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
python中split方法用法分析
2015/04/17 Python
python装饰器初探(推荐)
2016/07/21 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
医生自荐信
2013/10/11 职场文书
研修第一天随笔感言
2014/02/15 职场文书
小学生期末评语
2014/04/21 职场文书
小学捐书活动总结
2014/07/05 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书