利用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特殊字符转义介绍
Nov 05 Javascript
jQuery 选择器详解
Jan 19 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
个人小程序接入支付解决方案
May 23 Javascript
laravel实现中文和英语互相切换的例子
Sep 30 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 Javascript
vue 获取url里参数的两种方法小结
Nov 12 Javascript
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
Ajax实现页面无刷新留言效果
Mar 24 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
PHP nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
推荐dojo学习笔记
2007/03/24 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python 循环语句之 while,for语句详解
2018/04/23 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
九州传奇上机题
2014/07/10 面试题
法学求职信
2014/06/22 职场文书
挂职个人工作总结
2015/03/05 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
python计算列表元素与乘积详情
2022/08/05 Python