【问题标题】:GET http://localhost:4200/resource 404 (Not Found)GET http://localhost:4200/resource 404(未找到)
【发布时间】:2018-08-01 04:11:06
【问题描述】:

我正在尝试将数据从 Spring Boot 应用程序获取到 Angular 应用程序。

我的 Angular 组件有以下代码:

constructor(private http: HttpClient) { 
    http.get('resource').subscribe(data => this.greeting = data);
}

我的 Spring boot 控制器代码如下:

@RequestMapping("/resource")
public Map<String,Object> home() {
    Map<String,Object> model = new HashMap<String,Object>();
    model.put("id", UUID.randomUUID().toString());
    model.put("content", "Hello World");
    return model;
}

但是,当我运行此应用程序时,我收到如下图所示的 404 错误:

【问题讨论】:

  • 检查你的 Spring Boot 应用在哪里运行,通常是 8080 端口

标签: angular spring-boot angular-httpclient


【解决方案1】:

您应该请求引导您的服务器的域。 在这种情况下,您正在向localhost:4200 发出 GET 请求,这是默认的 Angular CLI 域+端口。

因此,您正在向前端应用程序所在的同一端口发出请求。

如果您的服务器在 localhost:3000 上运行,您可以像这样执行 get 请求:

`this.http.get(`http://localhost:3000/resources`).subscribe()...`

【讨论】:

  • 我已更改代码并收到新错误。我认为这是因为我使用的是 spring-boot 安全性。请参阅更新后的帖子。这个怎么解决?
  • @LahiruGamage 我回滚了您的更改。你不能改变你的问题的意图,因为这会使这个答案无效。如果你遇到一个新问题,你应该提出一个新问题。但是,由于这是一个 CORS 问题,您可能应该先四处寻找解决方案。到目前为止,在 Stack Overflow 上已经多次回答了 CORS 问题,例如 Spring Boot and CORS
  • 您提供的示例无法解决我的问题。我认为这个问题现在与角度 http 调用有关。 @g00glen00b
  • @LahiruGamage 您可以打开另一个问题,我们可以在那里提供帮助。但我假设我帮助您解决了这个问题,所以您可以关闭这个问题。
  • 我会的。谢谢你们俩
猜你喜欢
  • 2021-06-28
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2020-12-01
  • 2019-02-04
  • 2021-09-14
相关资源
最近更新 更多