详解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 相关文章推荐
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
js替换字符串的所有示例代码
Jul 23 Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 Javascript
微信小程序 底部导航栏目开发资料
Dec 05 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
何时使用Map来代替普通的JS对象
Apr 29 Javascript
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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
用javascript实现自定义标签
2007/05/08 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
python笔记(2)
2012/10/24 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
python实现多线程端口扫描
2019/08/31 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
如何写辞职书
2015/02/26 职场文书
会议简报格式范文
2015/07/20 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python