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 相关文章推荐
Jquery对select的增、删、改、查操作
Feb 06 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
微信小程序-可移动菜单的实现过程详解
Jun 24 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 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
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Python Django搭建网站流程图解
2020/06/13 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
禁毒宣传标语
2014/06/19 职场文书
工作自我推荐信范文
2015/03/25 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers