详解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高级程序设计 客户端存储学习笔记
Sep 10 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jquery的ajax简单结构示例代码
Feb 17 Javascript
javascript父、子页面交互技巧总结
Aug 08 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
Node.js DES加密的简单实现
Jul 07 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
Dec 01 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
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实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php数组去除空值函数分享
2015/02/02 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
Exjs 入门篇
2010/04/07 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
python实现人脸识别代码
2017/11/08 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
使用Python构造hive insert语句说明
2020/06/06 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
表决心的诗句大全
2014/03/11 职场文书
岗位职责怎么写
2014/03/14 职场文书
六查六看自查报告
2014/10/14 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
网聊搭讪开场白
2015/05/28 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP