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 相关文章推荐
JS实现下拉框的动态添加(附效果)
Apr 03 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
Aug 23 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
详解JavaScript数据类型和判断方法
Sep 04 Javascript
vue使用过滤器格式化日期
Jan 20 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
PHP入门速成教程
2007/03/19 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
javascript模块化简单解析
2016/04/07 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
python数据结构之二叉树的遍历实例
2014/04/29 Python
Python实现全角半角转换的方法
2014/08/18 Python
Python heapq使用详解及实例代码
2017/01/25 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python多线程实现同步的四种方式
2017/05/02 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
教你学会使用Python正则表达式
2017/09/07 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
Python 多维List创建的问题小结
2019/01/18 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python统计字符的个数代码实例
2020/02/07 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
草莓网官网:StrawberryNET
2019/08/21 全球购物
小学生期末评语大全
2014/04/21 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
副总经理岗位职责
2015/02/02 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
食品药品安全责任书
2015/05/11 职场文书