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之软键盘实现(js源码)
Jan 30 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
Node学习记录之cluster模块
May 31 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
vue-cli 引入、配置axios的方法
May 08 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
layui 上传文件_批量导入数据UI的方法
Sep 23 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
如何使用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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
对javascript和select部件的结合运用
2006/10/09 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
php实现的xml操作类
2016/01/15 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
微信小程序签到功能
2018/10/31 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
总经理岗位职责
2013/11/09 职场文书
国贸专业的职业规划范文
2014/01/23 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
《社戏》教学反思
2014/04/15 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
恰同学少年观后感
2015/06/08 职场文书
新闻报道稿范文
2015/07/23 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
Pygame Event事件模块的详细示例
2021/11/17 Python