GET http://localhost:4200/resource 404(未找到)

Posted

技术标签:

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

我正在尝试将数据从 Spring 引导应用程序获取到 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 端口 【参考方案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 您可以打开另一个问题,我们可以在那里提供帮助。但我假设我帮助您解决了这个问题,所以您可以关闭这个问题。 我会的。谢谢你们俩

以上是关于GET http://localhost:4200/resource 404(未找到)的主要内容,如果未能解决你的问题,请参考以下文章

angular + nodejs 控制台显示“GET http://localhost:4200/user/profile 401 (Unauthorized)”

来源 'http://localhost:4200' 已被 CORS 策略阻止

从源“http://localhost:4200”访问“http://localhost:1111/...”的 XMLHttpRequest 已被 CORS 策略阻止:

CORS 策略已阻止从源“http://localhost:4200”访问“http://localhost:8080/BeginSignup”获取

CORS 策略已阻止访问源“http://localhost:4200”的 XMLHttpRequest

带有 Angular 的 Spring Boot。从源“http://localhost:4200”访问“http://localhost:8080/”的 XMLHttpRequest 已被 CORS