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操作input type=radio的实现代码
Jun 14 Javascript
Jquery实现瀑布流布局(备有详细注释)
Jul 31 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 Javascript
js实现简单掷骰子小游戏
Oct 24 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
如何使用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 array数组的教程详解
2013/06/05 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
js实时获取系统当前时间实例代码
2013/06/28 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
面包屑导航详解
2017/12/07 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python中异常重试的解决方案详解
2017/05/05 Python
Python使用sorted排序的方法小结
2017/07/28 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python callable()函数用法实例分析
2018/03/17 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
教师求职自荐信
2014/03/09 职场文书
购房协议书
2014/04/11 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
股东出资协议书
2016/03/21 职场文书
Windows server 2012搭建FTP服务器
2022/04/29 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android