详解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 相关文章推荐
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
document.forms[].submit()使用介绍
Feb 19 Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
js制作简单的音乐播放器的示例代码
Aug 28 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
vuejs实现下拉框菜单选择
Oct 23 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
python插入排序算法实例分析
2015/07/03 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
简单了解python变量的作用域
2019/07/30 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
JAVA中的关键字有什么特点
2014/03/07 面试题
小学生新年寄语
2014/04/03 职场文书
工作说明书范文
2014/05/07 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS
浅谈如何保证Mysql主从一致
2022/03/13 MySQL