【发布时间】:2020-03-08 22:53:05
【问题描述】:
我在 Spring Boot 应用程序中运行了一个 Angular 6 应用程序。
是否可以从angular app里面的spring boot app获取参数?
为什么? spring 应用程序有一个 REST 服务,为 angular 应用程序提供配置(我不能使用 environment.ts 文件,因为配置是动态的,稍后会解释)。但我不知道如何从角度调用 spring REST 服务。
如果我使用http://localhost:80/MyRestURL,角度应用程序将尝试调用 localhost,但浏览器中的 localhost 将引用我从中启动浏览器的 PC。我需要转到运行应用程序的服务器。
现在我可以按照here 的描述从 url 中获取主机名。
let hostNameFromURL: string = this.window.location.hostname;
let correctLocalServerURL: string = "http://" + hostNameFromURL+ ":80/MyRestURL";
但是,如果我们从负载均衡器启动 Angular 应用程序,则 URL 中的名称将是负载均衡器的 URL,而不是运行 Spring Boot 应用程序和 Angular 的服务器。我可以通过负载平衡器获取配置,但如果用户已经被路由到可以工作的服务器,那么引用另一台机器(可能不稳定)似乎会适得其反)。
还有其他方法可以在 Angular 和 Spring Boot 应用程序之间共享数据吗?
【问题讨论】:
-
你能用相对路径代替绝对路径吗?如果角度应用程序是从同一个负载均衡器提供的,那应该会给你相同的结果(即
/MyRestUrl而不是http:://someServer/MyRestUrl) -
@JoSSte 非常感谢......我的菜鸟错误。介意将其添加为答案,我会接受。
-
你去@Chrispie
标签: angular rest spring-boot