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 28 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
Jun 27 Javascript
Javascript学习指南
Dec 01 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
js+css绘制颜色动态变化的圈中圈效果
Jan 27 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
Mar 06 Javascript
用POSTMAN发送JSON格式的POST请求示例
Sep 04 Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 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设计模式 Command(命令模式)
2011/06/26 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
JS高级运动实例分析
2016/12/20 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
python搜索指定目录的方法
2015/04/29 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python 反向输出字符串的方法
2018/07/16 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python与mysql数据库交互的实现
2020/01/06 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
尽职尽责村干部自我鉴定
2014/01/23 职场文书
结婚喜宴主持词
2014/03/14 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
会计求职自荐信
2014/06/20 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
安全教育片观后感
2015/06/17 职场文书
超市店长竞聘书
2015/09/15 职场文书