详解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 相关文章推荐
JS计算网页停留时间代码
Apr 28 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
AngularJS基础 ng-class-odd 指令示例
Aug 01 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
详解ECharts使用心得总结
Dec 06 Javascript
JS实现图片预加载之无序预加载功能代码
May 12 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
微信小程序中页面FOR循环和嵌套循环
Jun 21 Javascript
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
javascript简单实现深浅拷贝过程详解
Oct 08 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
PHP创建XML接口示例
2019/07/04 PHP
js停止输出代码
2008/07/20 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
Angular路由简单学习
2016/12/26 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
Python 3 判断2个字典相同
2019/08/06 Python
Python和Sublime整合过程图示
2019/12/25 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
证婚人搞笑证婚词
2014/01/10 职场文书
销售类求职信
2014/06/13 职场文书
校园标语大全
2014/06/19 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang