【问题标题】:Communication issue between Angular application and spring boot API deployed in a Docker containerAngular 应用程序和部署在 Docker 容器中的 Spring Boot API 之间的通信问题
【发布时间】:2021-11-26 14:25:09
【问题描述】:

我正在创建一个应用程序,前端使用 Angular,后端使用 Spring Boot。 Evrything 在我的本地机器上运行良好。但是对于部署,我选择将它们中的每一个容器化到单独的 Docker 容器中。当我尝试从 Angular 应用程序(显示在我的浏览器上)调用后端 api 时,问题就出现了。当我尝试调用路径 {http://backend-address/login} 时,我在浏览器控制台 {http://frontend-address/backend-address/login 405 (Not Allowed)} 中收到此错误。 似乎,当我尝试调用后端时,URL 总是被转换,在 http:// 和后端地址之间添加 {frontend-address/}

我的 Docker 引擎位于地址为 192.168.30.4 的 Linux 虚拟机上。 spring boot 容器映射到虚拟机的 8081 端口,angular 容器映射到 4300 端口。因此,要从 angular 应用程序(显示在我的浏览器上)调用 spring boot API,这是请求我做到了:

`this.httpClient.post<Tokens>("192.168.30.4:8081/login", user, {observe: "response"}).subscribe({…})`

我的浏览器控制台出现了这个错误:

POST http://192.168.30.4:4300/192.168.30.4:8081/login 405(不允许)

我不明白为什么在 http:// 和后端地址 (192.168.30.4:8081) 之间插入前端地址 (192.168.30.4:4300/)

【问题讨论】:

  • 尝试在 httpClient.post "http://192.168.30.4:8081/login" 中添加方案 http://
  • 谢谢你。你的评论解决了我的问题。我怎么能告诉它到 stackoverflow 以使你获得一些积分?
  • 我添加了答案,你可以批准。 :)

标签: angular spring spring-boot docker


【解决方案1】:

尝试在 httpClient.post "http://192.168.30.4:8081/login" 中添加方案 http://

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 2018-09-19
    • 2021-01-25
    • 1970-01-01
    • 2021-07-22
    • 2021-01-14
    • 2020-03-05
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多