Angular 7 无法解析 spring boot rest API hostname

Angular 7 Unable to resolve spring boot rest API hostname

我已将 Angular7 应用程序作为静态内容捆绑在 spring 引导 REST API 到 .war 存档中,并将其部署在 JBoss EAP 7.3 上。应用程序部署成功,我可以看到登录页面。但是,当我尝试登录时,我的浏览器控制台出现 net::err_name_not_resolved 错误,当我检查网络选项卡时,我发现主机名被省略,而 angular 正在尝试调用 REST API 用于身份验证,因此在控制台中报告错误。在我的 angular 配置中,我定义了 apiHost='/' 并期望这将在运行时解析为机器的主机或 IP,但这不起作用。我还创建了一个 jboss-web.xml ,我将上下文根定义为 /.

我将不胜感激在这方面的任何帮助。

编辑

我需要它来工作,因为我正在 JBoss 集群中部署 .war 文件,因此,该应用程序应该可以从任何集群成员访问。

In my angular configs, I have defined apiHost='/' and expect that this would be resolved to the machine's host or IP at runtime

您刚刚在 spring 启动 运行 的服务器中加载了一些静态文件(html、js)。然后将这些静态文件(代表前端)提供给客户端。客户可以是任何人。

因此,如果服务器 运行s 在 ip 192.168.1.1 上,则客户端可以具有相同或完全不同的 IP。因此,您必须提供该信息。

简单的想一想。这些 html 和 js 文件仅由您的浏览器处理,它对 spring 启动服务器一无所知。不知何故,在那些 html、js 文件中调用的调用必须指定服务器所在的位置。

因此你的apiHost='/'是错误的。可以是 apiHost='localhost'apiHost='some Specific Ip'

我终于使用 apiHost='.'

解决了这个问题

我现在可以使用参与 JBoss 集群的任何主机调用我的应用程序。