Vue项目配置跨域访问和代理proxy设置方式


Posted in Javascript onSeptember 08, 2020

在vue单页应用项目开发时,避免不了要请求后端,这时通常就会出现跨域问题。有2种常用的解决方案

后端设置允许跨域访问

前端通过代理进行访问后端

下面我们只说说如何配置vue-cli代理访问:

vue-cli代理

最简单就是配置vue conifg进行实现

下面配置3个请求的后端,分别是:

请求http://localhost:4201/adminapi/*会代理请求http://localhost:8180/*

请求http://localhost:4201/portalapi/*会代理请求http://localhost:8185/*

请求http://localhost:4201/securityapi/*会代理请求http://localhost:8089/*

由于vue-cli是基于webpack,因此webpack的devServer选项都是支持配置的

module.exports = {
 // ...
 devServer: {
   port: 4201,
   proxy: {
    '/adminapi': {
     target: 'http://localhost:8180',
     ws: true,
     changeOrigin: true,
     pathRewrite: {
      '^/adminapi': ''
     }
    },
    '/portalapi/': {
     target: 'http://localhost:8185/',
     ws: true,
     changeOrigin: true,
     pathRewrite: {
      '^/portalapi': ''
     }
    },
    '/securityapi/': {
     target: 'http://localhost:8089/',
     ws: true,
     changeOrigin: true,
     pathRewrite: {
      '^/securityapi': ''
     }
    }
   },
   disableHostCheck: true, // 这是由于新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname 不是配置内的,将中断访问。
 },
 //...
}

Nodejs做中间时行路由转发

可以用nodejs和框架express对请求做路由转发。

在生产环境下更可以免去使用nginx配置反向代理。

方案各有利弊,技术架构选型时需要针对自己的项目环境,并且适合自己的团队是最好的。

后端跨域访问

后端的跨域访问设置也是比较简单的,不同语言JAVA PHP Python Go的设置也大同小异。

查询一下都有比较多的资料,但在生产环境下,为了安全起见,还是建议不要设置允许跨域访问,或者限制允许跨域的IP

补充知识:Vue 过滤器filter调用data、methods中的东西报错

今天学习了filter,我将过滤的过滤方法放到methods中发现怎么调用都说没有这个function

然后我把log了一下这个this 发现这个this指向的竟然是window

于是网上找到了如下的解决方法:

定义一个全局变量:

let that;

在beforeCreate生命周期将this赋值给that,通过that获得

var vm = new Vue({
  el: '#app',
  data: {
  },
  beforeCreate: function () {
    that = this
  },
  methods:{
   fom(fmt){
    ...
   }
  },
  ....,
  filters: {
       dateformate: function (val) {
         return that.fom("yyyy-MM-dd")
       }
     }
  })

以上这篇Vue项目配置跨域访问和代理proxy设置方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
jquery $(this).attr $(this).val方法使用介绍
Oct 08 Javascript
IE8下String的Trim()方法失效的解决方法
Nov 08 Javascript
jQuery实现Tab选项卡切换效果简单演示
Nov 23 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
Vue2递归组件实现树形菜单
Apr 10 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
Sep 19 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
Array.filter中如何正确使用Async
Nov 04 Javascript
html5调用摄像头截图功能
Jan 18 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 #jQuery
js实现右键弹出自定义菜单
Sep 08 #Javascript
vue 使用原生组件上传图片的实例
Sep 08 #Javascript
使用js和canvas实现时钟效果
Sep 08 #Javascript
javascript使用canvas实现饼状图效果
Sep 08 #Javascript
vue配置多代理服务接口地址操作
Sep 08 #Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 #Javascript
You might like
ezSQL PHP数据库操作类库
2010/05/16 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
php分页函数示例代码分享
2014/02/24 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
详解json在php中的应用
2018/09/30 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
深入浅析Vue中的Prop
2018/06/10 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
es6 for循环中let和var区别详解
2020/01/12 Javascript
Python 自动刷博客浏览量实例代码
2017/06/14 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
宿舍使用违章电器检讨书
2014/01/12 职场文书
年级组长自我鉴定
2014/02/22 职场文书
干部下基层实施方案
2014/03/14 职场文书
警示教育活动总结
2014/05/05 职场文书
工作岗位说明书模板
2014/05/09 职场文书
全陪导游词
2015/02/04 职场文书
安全员岗位职责
2015/02/10 职场文书
市场部岗位职责范本
2015/04/15 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
vue2实现provide inject传递响应式
2021/05/21 Vue.js
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫