详解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实现文本框中焦点在最后位置
Mar 04 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
Mar 13 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
JavaScript数组方法大全(推荐)
Jul 05 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 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
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
工作需要写的一个js拖拽组件
2011/07/28 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
python 实现汉诺塔游戏
2020/11/28 Python
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
教师实习期自我鉴定
2013/10/06 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
小学教师节活动方案
2014/01/31 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
2014年接待工作总结
2014/11/26 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
小程序实现侧滑删除功能
2022/06/25 Javascript