之前拜读过之前拜读过nightire宣布的一片名为“前后星散架构的探究之路”的文章,也在发问中提到文章中不明白的内容,昨天有幸跟一名朋侪聊起来怎样运用反向代办处理跨域题目,经由他的指点我本身实践,终究测试胜利了,把效果分享一下。
题目场景:
后端开辟API接口,布置在开辟服务器上,前端开辟静态页面布置在前端开辟服务器上
前端JS中须要经由历程AJAX异步要求API的数据,因为二者散布在两台服务器中,所以这个要求存在了跨域
处理要领:
要领一:
前端开辟完成今后,将前端工程文件经由历程某些要领直接拷贝到后端服务器上,使二者处于统一台服务器,处理跨域。
题目:
如许做致使前端不能常常调试本身的逻辑,还要依赖于后端的环境
要领二:
前端在本身的服务器上模仿后端API的数据
题目:
如许做前端不仅要写本身的内容,还要分外编写后端的测试数据,增添工作量而且不能直接晓得API的种种现实返回效果。
书归正传,下面说说怎样运用反向代办处理跨域题目
我用的是nginx,可以运用其他雷同功用的软件替代,比方我在当地开启nginx监听80端口,当地服务器跑8080端口,长途API服务器在10.10.10.10上
经由历程在nginx的配置文件,在location里把通例途径直接指向当地8080,把API要求途径指向长途服务器地点
当地接见localhost/通例地点,经由历程nginx的反向代办,要求会转到localhost:8080这台服务器上,代码里要求数据地点为/api则会把要求转到长途PAI服务器上,而全部历程,我们实在都是在localhost里举行的,既没有跨域名,也没有跨端口。
运用反向代办的优点是,开辟人员只须要关注本身的环境不须要关注与本身无关的内容,可以越发专注的开辟和测试本身的代码,瑕玷是要熟习反向代办的环境搭建能够轻微有点超越本身的义务领域。
种种要领都有优瑕玷,依据本身的现实情况挑选适宜本身的形式才是霸道。
注:本文在于举一反三,内容里某些观点或许文辞能够运用不当,仅代表个人明白,若有不当之处还望指出批阅。