详解vue-cli开发环境跨域问题解决方案


Posted in Javascript onJune 06, 2017

前后端分离开发中必要会遇到的问题—跨域。在使用vue开发的时候,开始为了解决跨域问题。采用的是CORS(Cross-origin resource sharing)。后台在响应头中添加Access-Control-Allow-Origin。这样就可以跨域调后台接口了。

在前几天无意中看到了config的index.js文件中有一个proxyTable属性,通过配置可以解决开发环境的跨域

开发期间的API代理

当将此样板与现有后端集成时,通常需要在使用dev服务器时访问后端API。为了实现这一点,我们可以并行(或远程)运行dev服务器和API后端,并让dev服务器将所有API请求代理到实际的后端。

要配置代理规则,请在其中编辑dev.proxyTable选项config/index.js。dev服务器正在使用http代理中间件进行代理,因此您应参考其文档以获取详细的用法。但这是一个简单的例子:

// config/index.js
module.exports = {
 // ...
 dev: {
 proxyTable: {
  // proxy all requests starting with /api to jsonplaceholder
  '/api': {
  target: 'http://jsonplaceholder.typicode.com',
  changeOrigin: true,
  pathRewrite: { //需要rewrite重写的, 如果在服务器端做了处理则可以不要这段
   '^/api': ''
  }
  }
 }
 }
}

上面的示例将代理请求/api/posts/1到http://jsonplaceholder.typicode.com/posts/1。

如果

pathRewrite: { 
‘^/api': ‘api' 
},

则将代理请求/api/posts/1到http://jsonplaceholder.typicode.com/api/posts/1。

网址匹配

除了静态网址之外,您还可以使用glob模式来匹配URL,例如/api/**。有关详细信息,请参阅上下文匹配。此外,您可以提供一个filter可以是自定义函数的选项,以确定请求是否应被代理:

proxyTable: {
 '*': {
 target: 'http://jsonplaceholder.typicode.com',
 filter: function (pathname, req) {
  return pathname.match('^/api') && req.method === 'GET'
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
[JSF]使用DataModel处理表行事件的实例代码
Aug 05 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
Dec 05 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
vue实现移动端图片裁剪上传功能
Aug 18 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
vue 数据双向绑定的实现方法
Mar 04 Vue.js
JS实现微信里判断页面是否被分享成功的方法
Jun 06 #Javascript
详解Vue 开发模式下跨域问题
Jun 06 #Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
Jun 06 #Javascript
深入理解vue-loader如何使用
Jun 06 #Javascript
利用webstrom调试Vue.js单页面程序的方法教程
Jun 06 #Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 #Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 #Javascript
You might like
PHP4之COOKIE支持详解
2006/10/09 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
python ddt实现数据驱动
2018/03/14 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python可视化text()函数使用详解
2020/02/11 Python
python实现翻译word表格小程序
2020/02/27 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
python3将变量输入的简单实例
2020/08/19 Python
关于python中导入文件到list的问题
2020/10/31 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
C++:局部变量能否和全局变量重名
2014/03/03 面试题
中学家长会邀请函
2014/01/17 职场文书
幼儿教师培训感言
2014/03/08 职场文书
学生请假条格式
2014/04/11 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
小学主题班会教案
2015/08/17 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
Python学习之包与模块详解
2022/03/19 Python