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操作word的参考代码
Oct 26 Javascript
js继承的实现代码
Aug 05 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
Dec 27 Javascript
jquery中插件实现自动添加用户的具体代码
Nov 15 Javascript
jquery $(document).ready()和window.onload的区别浅析
Feb 04 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
详解jQuery选择器
Dec 21 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
Apr 20 Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 Javascript
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 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作的文本留言本的例子(六)
2006/10/09 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
Yii中表单用法实例详解
2016/01/05 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
基于jQuery的动态表格插件
2011/03/28 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
Python是编译运行的验证方法
2015/01/30 Python
Python实现批量下载图片的方法
2015/07/08 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
深入了解Django View(视图系统)
2019/07/23 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
Delphi笔试题
2016/11/14 面试题
学习雷锋演讲稿
2014/05/10 职场文书
文化产业实施方案
2014/06/07 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
2014年科协工作总结
2014/12/09 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang