利用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 相关文章推荐
js表格分页实现代码
Sep 18 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
Oct 25 Javascript
纯原生js实现贪吃蛇游戏
Apr 16 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
vue 全局环境切换问题
Oct 27 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 Javascript
vue中activated的用法
Jan 03 Vue.js
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产生随机字符串函数
2006/12/06 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python中使用正则表达式的连接符示例代码
2017/10/10 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
TensorFlow的权值更新方法
2018/06/14 Python
python try 异常处理(史上最全)
2019/03/07 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Python yield的用法实例分析
2020/03/06 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
大学生的四年学习自我评价
2013/12/13 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
鸟的天堂导游词
2015/01/31 职场文书
初中生物教学反思
2016/02/20 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL