详解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代码
Jan 28 Javascript
一个js的tab切换效果代码[代码分离]
Apr 11 Javascript
jQuery实现长文字部分显示代码
May 13 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
Aug 24 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
Jan 29 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
vue的列表交错过渡实现代码示例
May 05 Javascript
JS中FormData类实现文件上传
Mar 27 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
PHP注释实例技巧
2008/10/03 PHP
php while循环得到循环次数
2013/10/26 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
js 文件引入实现代码
2010/04/23 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
存储过程和函数的区别
2013/05/28 面试题
收银员岗位职责
2014/02/07 职场文书
竞选学委演讲稿
2014/09/13 职场文书
毕业生党员个人总结
2015/02/14 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
导游词之湖北武当山
2019/09/23 职场文书
python pygame 开发五子棋双人对弈
2022/05/02 Python