利用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 相关文章推荐
关于可运行代码无法正常执行的使用说明
May 13 Javascript
关于jQuery object and DOM element
Apr 15 Javascript
js有序数组的连接问题
Oct 01 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 Javascript
jquery实现图片按比例缩放示例
Jul 01 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
axios异步提交表单数据的几种方法
Aug 11 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 Javascript
javascript 易错知识点实例小结
Apr 25 Javascript
Vue管理系统前端之组件拆分封装详解
Aug 23 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
解析数组非数字键名引号的必要性
2013/08/09 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
Python运用于数据分析的简单教程
2015/03/27 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
资深生产主管自我评价
2013/09/22 职场文书
人力资源管理毕业生自荐信
2013/11/21 职场文书
差生评语大全
2014/05/04 职场文书
党员三严三实心得体会
2014/10/13 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
市场督导岗位职责
2015/04/10 职场文书
企业百日安全活动总结
2015/05/07 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript