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 相关文章推荐
IE8 浏览器Cookie的处理
Jan 31 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
Nov 23 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
js实现微信聊天界面
Aug 09 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
封装一个PDO数据库操作类代码
2009/09/09 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
概述BootStrap中role="form"及role作用角色
2016/12/08 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python中多线程及程序锁浅析
2015/01/21 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
pytorch 模型可视化的例子
2019/08/17 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
拒绝黄毒毒宣传标语
2014/06/26 职场文书
军训个人总结
2015/03/03 职场文书
金砖之国观后感
2015/06/11 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python