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 相关文章推荐
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
koa大型web项目中使用路由装饰器的方法示例
Apr 02 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
javascript使用链接跨域下载图片
Nov 01 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
原生js实现拖拽移动与缩放效果
Aug 24 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
Codeigniter检测表单post数据的方法
2015/03/21 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
php post换行的方法
2020/02/03 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python实现五子棋人机对战游戏
2020/03/25 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
会计学自我鉴定
2014/02/06 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
法人授权委托书
2014/09/16 职场文书
语文教师求职信范文
2015/03/20 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android