我正在构建一个单页应用程序(使用 AngularJS),该应用程序将来自它对遗留系统的 REST API 调用的数据呈现出来。这个遗留系统非常大,用 Java 编写,部署需要几分钟,所以我们决定开发与遗留系统完全分离的单页应用程序会更有效率。
一旦我们尝试与遗留系统的 REST API 通信,就会出现问题。虽然这两个应用程序都在本地部署到同一主机,但它们部署在不同的应用程序服务器上,因此我需要在通信时使用不同的端口。但由于 SPA 与不同端口上的 REST API 通信,浏览器阻止了我的请求以防止跨站点脚本攻击。
我们发现这个构建工具名称为lineman(利用 grunt),它可以轻松代理 http 请求。这让我们绕过了跨站点脚本限制,但这仅适用于开发模式。
现在我们已经完成了概念验证,我们想知道我们应该如何在没有代理的情况下一起部署这些应用程序。我很难找到关于如何做到这一点的建议,因为 Angular 一开始并不假设你有一个后端,而且大多数在前端使用 Angular 的人并没有在后端使用 Java(如果这很重要的话) .
我们遇到了这样的问题,应用程序的上下文路径会根据它们是在 prod 模式还是 dev 模式下部署而发生变化,因此我们必须想出聪明的方法来避免在这两种模式下都工作的断开链接。我想知道我是否/在哪里走错了一步。我是否应该避免在与后端不同的服务器上开发 SPA?