问题描述:为了实现前后端的彻底分离,我们彻底放弃使用.jsp的方式在前端显示页面中穿插java代码,但是带来的问题也比较明显,就是前端向后台发出请求的时候可能会出现跨域的问题,浏览器为了安全会阻止跨域请求。
目前有一种很好的方法是使用node.js来解决这个问题,现在我提出另外几种解决方案,虽说也同样会带来一些安全等方面的问题,但也不失是一种方法,可以参考一下的。
一、前后端发布项目的端口不同。
这样带来的问题很明显,访问某个路径的时候还要加上端口。
如果前端使用80端口的话,那么后台使用其他端口会导致类似于微信授权这种要求在80端口进行数据交互的过程会失败的。
总而言之可以同时使用两个tomcat这样的服务器在不同的端口提供服务,从而实现前后端的分离。
二、使用两个服务器
为了解决上面那个访问时需要添加端口的问题,可以考虑使用两台服务器,一台专门用于后台,一台专门用于前端。
带来的主要问题我认为是成本加大了。事实上我觉得前后端协议明确,约定明确的情况下,这样做各自的维护更加方便一些,但是成功却大大增加了。
三、tomcat两个路径分别存放前后端
这样会带来跨域问题,当然前面两种方法同样也会。
这样的好处就是既解决了需要填写访问路径的端口问题,也解决了添加一台服务器的成本问题。
总而言之就是在tomcat的webapp文件夹下的两个不同文件夹来分别存储前后端代码。
当然,事实上最应该被提倡的应该是使用node.js来解决这些问题。但是不得不说引用一个新的中间件,新的技术自然也会带来一些麻烦。