利用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 相关文章推荐
javascript iframe编程相关代码
Dec 28 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
jQuery.extend 函数详解
Feb 03 Javascript
js获取客户端外网ip的简单实例
Nov 21 Javascript
node.js不得不说的12点内容
Jul 14 Javascript
不得不分享的JavaScript常用方法函数集(下)
Dec 25 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 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设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
深入了解js原型模式
2019/05/30 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python单元测试实例详解
2018/05/25 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python实现对输入的密文加密
2019/03/20 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
在django中自定义字段Field详解
2019/12/03 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
海南地接欢迎词
2014/01/14 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
公路绿化方案
2014/05/12 职场文书
开票员岗位职责
2015/02/12 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python