利用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 相关文章推荐
Extjs学习过程中新手容易碰到的低级错误积累
Feb 11 Javascript
JS的反射问题
Apr 07 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
JS 控件事件小结
Oct 31 Javascript
jQuery实现简单的网页换肤效果示例
Sep 18 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
Angular2数据绑定详解
Apr 18 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
JS实现transform实现扇子效果
Jan 17 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代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
英国在线泳装店:Simply Swim
2019/05/05 全球购物
Android面试宝典
2013/08/06 面试题
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
大二法英学生职业生涯规划范文
2014/02/27 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
入股协议书
2014/04/14 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
办理护照工作证明
2014/10/10 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
高中家长意见怎么写
2015/06/03 职场文书
运动会100米加油稿
2015/07/21 职场文书
关于开学的感想
2015/08/10 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
Python基础之字符串格式化详解
2021/04/21 Python