利用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 Sort 表格排序
Oct 31 Javascript
js判断字符是否是汉字的两种方法小结
Jan 03 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
May 17 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
纯js仿淘宝京东商品放大镜功能
Mar 02 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
js验证身份证号码记录的方法
Apr 26 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.ini中文版
2006/10/09 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Python sys.argv用法实例
2015/05/28 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
2014年党员公开承诺书范文
2014/03/28 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
实习单位推荐信
2015/03/27 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
Golang bufio详细讲解
2022/04/21 Golang