【问题标题】:Difference between Angular HttpClient Request and Spring Boots RestTemplate RequestAngular HttpClient 请求和 Spring Boots RestTemplate 请求之间的区别
【发布时间】:2021-05-28 03:21:33
【问题描述】:

尝试从 Angular 应用程序调用执行器端点时收到 CORS 错误。

我知道我可以在 Spring Boot 应用程序的 application.yaml 中启用 CORS 允许的来源。

但我想知道的是,如果我从 Spring Boot 应用程序中发出请求,我不会收到 CORS 错误。

http://localhost:8080 执行的以下行返回有效响应。

var response = new RestTemplate().getForEntity("https://<HOST>/actuator/info", String.class);

从我的 Angular 应用程序执行此行时,出现 CORS 错误

this.httpClient.get('https://<HOST>/actuator/info').subscribe((result: any) => {
      console.log(result);
});

这两个调用都来自 localhost,来自 Angular 的一个会导致 CORS 错误,而来自 Spring Boot 的一个不会。

谁能给我解释一下这个区别?

【问题讨论】:

  • 感谢您的回答,它不是重复的。在链接的帖子中,它是关于节点服务器应用程序中的一般 CORS。我的问题是关于从 Angular 应用程序(客户端)和 Spring Boot 应用程序(也是客户端)向同一服务器发送 HTTP 请求时的不同行为

标签: angular spring-boot httpclient resttemplate


【解决方案1】:

CORS with POSTMAN 的帮助下我发现了区别

在 Angular 应用程序中发送请求时,请求是从浏览器发送的,并且浏览器已内置策略,只要请求的资源不包含 CORS 标头,就拒绝发送/获取不同域的数据。

在 Spring Boot 应用程序中发送请求时,请求不是从浏览器发送的,因此不会调用任何策略。

【讨论】:

    猜你喜欢
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2012-10-24
    • 2020-02-10
    • 2020-01-08
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多