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 相关文章推荐
懒就要懒到底——鼠标自动点击(含时间判断)
Feb 20 Javascript
jQuery ajax cache缓存问题
Jul 01 Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
Mar 29 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
JavaScript中读取和保存文件实例
May 08 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
JS Input里添加小图标的两种方法
Nov 11 Javascript
微信小程序下拉框搜索功能的实现方法
Jul 31 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
JS简单实现String转Date的方法
2016/03/02 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Django的Modelforms用法简介
2019/07/27 Python
python实现网站微信登录的示例代码
2019/09/18 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
十佳护士获奖感言
2014/02/18 职场文书
市场拓展计划书
2014/05/03 职场文书
实验室的标语
2014/06/20 职场文书
高三物理教学反思
2016/02/20 职场文书
Jsonp劫持学习
2021/04/01 PHP
MySQL约束超详解
2021/09/04 MySQL