利用node.js实现反向代理的方法详解


Posted in Javascript onJuly 24, 2017

本文主要给大家介绍的是关于利用node.js实现反向代理的相关内容,分享出供大家参考学习,下面话不多说,来一起看看详细的介绍:

跨域问题是前端开发很常见的问题解决方案有很多种

  • jsonp返回
  • Access-Control-Allow-Origin:'*' (需要注意的是 对于post请求会变成option请求需求后端支持)
  • 前端添加代理

前端添加代理

以vue-cli为例,前端添加代理

dev: {
 env: require('./dev.env'),
 port: 8888,
 autoOpenBrowser: true,
 assetsSubDirectory: 'static',
 assetsPublicPath: '/',
 proxyTable: {
 '/api':{
 target: 'http://localhost:3000',
 changeOrigin: true,
 }
 }

其中'/api'为接口的前缀,target为后端服务地址

前端请求示例

vm.$http.post('/api/reg', JSON.stringify(info)).then(() => {

 }, () => {

 });

反向代理

反向代理可以理解为指定一个服务地址为内部服务器地址。

为什么需要反向代理

如果只是作为接口请求,其实前端搭建代理服务器就可以了,但是代理服务器并不能满足所有的日常开发。

比如说单点登录的实现,需求服务端做302跳转。但是前端文件没有部署到后端服务器时,set-cookie是不能成功种下cookie登录信息的。

这就需要在后端服务器添加反向代理。

示例如下

const proxy = httpProxy.createProxyServer();
const proxyServer = http.createServer((req, res) => {
 proxy.web(req, res, {
 target: 'http://localhost:8888',
 });
});
proxyServer.listen(8088, () => {
 console.log('proxy server is running ');
});

这样前端开发就可以在8088端口了,当然热加载功能是在前端服务器的8888端口

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jqgrid 简单学习笔记
May 03 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
Apr 22 Javascript
jQuery.each使用详解
Jul 07 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
JS实现获取word文档内容并输出显示到html页面示例
Jun 23 Javascript
vue组件间通信六种方式(总结篇)
May 15 Javascript
原生JS实现记忆翻牌游戏
Jul 31 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
Jul 24 #Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
Jul 24 #Javascript
JavaScript对JSON数据进行排序和搜索
Jul 24 #Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
Jul 24 #Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 #Javascript
浅析JavaScript中的平稳退化(graceful degradation)
Jul 24 #Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 #Javascript
You might like
php 可变函数使用小结
2018/06/12 PHP
js 操作符实例代码
2009/10/24 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python hashlib模块的使用示例
2020/10/09 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
伦敦一卡通:The London Pass
2018/11/30 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
红色经典观后感
2015/06/18 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电