详解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错误的解决方案
Aug 07 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 Javascript
修改ligerui 默认确认按钮的方法
Dec 27 Javascript
JavaScript登录记住密码操作(超简单代码)
Mar 22 Javascript
JS隐藏号码中间4位代码实例
Apr 09 Javascript
TypeScript中使用getElementXXX()的示例代码
Sep 12 Javascript
JS浏览器BOM常见操作实例详解
Apr 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
mysql 搜索之简单应用
2007/04/27 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
全面理解闭包机制
2016/07/11 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
wxPython 入门教程
2008/10/07 Python
跟老齐学Python之Import 模块
2014/10/13 Python
Python图算法实例分析
2016/08/13 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
西班牙在线光学:Visual-Click
2020/06/22 全球购物
新书吧创业计划书
2014/01/31 职场文书
现场施工员岗位职责
2014/03/10 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis