利用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 相关文章推荐
jquery1.4后 jqDrag 拖动 不可用
Feb 06 Javascript
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
jQuery通过扩展实现抖动效果的方法
Mar 11 Javascript
jQuery实现列表的全选功能
Mar 18 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
JavaScript 监听组合按键思路及代码实现
Jul 28 Javascript
ant design pro中可控的筛选和排序实例
Nov 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 str_pad 函数使用详解
2009/01/13 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python调用服务接口的实例
2019/01/03 Python
值得收藏的10道python 面试题
2019/04/15 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Python自动创建Excel并获取内容
2020/09/16 Python
Python偏函数实现原理及应用
2020/11/20 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
分层教学实施方案
2014/03/19 职场文书
同学聚会感言一句话
2015/07/30 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
HTML基础详解(上)
2021/10/16 HTML / CSS