构建REST角度应用程序的正确方法是什么?

时间:2016-09-23 09:11:40

标签: java rest angular vert.x

我有一些java应用程序。它为REST客户端提供json,并使用localhost:8080来处理请求。

我也有角度2应用程序,它使用localhost:3000工作(我假设我可以将typescript文件编译为js并使用不使用lite-server,但不能:

zone.js@0.6.25?main=browser:269 Uncaught Error: More tasks executed then were scheduled.
index.html:20 Error: Error: XHR error loading file:///C:/dev/angular2app/app/main.js(…)

)。我的角度服务试图从这样的URL获取json表单服务器:

http://localhost:8080/api/test

当然,我收到有关跨域请求的错误是被禁止的。但是,如果我在与java应用程序相同的端口上启动角度应用程序,其中一个将没有位置(端口忙,等等)。

Pls,谁可以解释正确的架构方法来构建这样的应用程序?

1 个答案:

答案 0 :(得分:2)

在您的情况下,需要将AngularJS应用程序(即JS,HTML文件等)打包到WAR文件中(我假设它是一个WAR文件,因为您使用的是Tomcat 8080)否则下面的概念也将保留。在容器上部署应用程序后(假设容器在8080上运行),您将向应用程序请求可能的URL http://IP:8080/appName/。在这种情况下,没有端口冲突(实际上冲突情况不适用)。您已经在端口3000上提到过您的角度工作,我假设您已将服务URL硬编码为(可能)http://localhost:3000/。现在这不起作用,因为服务器在8080上运行。您需要做的是将应用程序中的服务调用URL或Angular应用程序中的服务URL的硬代码http://localhost:8080/相关联。还有另一个考虑因素,如果您使用IP通过浏览器访问应用程序,并且您在服务调用URL中使用了硬编码的localhost,则会出现跨域问题。为了避免这种情况,请使用URL作为http://localhost:8080 ...从浏览器访问应用程序。但是,如果您将Angular应用程序中的服务调用URL相关联,则可以使用浏览器中的IP或localhost。