我已经部署了3个docker容器-用于数据库,后端(Spring引导)和前端(Angular)。但是,当我访问网站(Google Cloud VM)时,对于后端的所有请求都收到CORS错误。后端在8080上运行。
访问IP:80时会收到CORS
为什么会这样?解决方法是什么?
这是我在控制器中使用CrossOrigin的方式。
@CrossOrigin("*")
@RestController
@RequestMapping("/api")
public class CustomerController {
感谢您的帮助。
答案 0 :(得分:1)
@Cross:将应用于单页,它将不适用于整个应用程序,因此,我建议您遵循以下类似方案链接:CORS Config中定义的方法。您可以在其中为整个应用程序定义过滤器,并更好地控制CORS的配置。
如果您已将Spring安全性与您的应用程序集成在一起,则还需要处理一些配置更改才能使其正常工作。
希望这很有帮助
答案 1 :(得分:1)
不允许您从脚本中调用与您呈现页面相同的域下找不到的URL:
出于安全原因,浏览器限制了从脚本启动的跨域HTTP请求。例如,XMLHttpRequest和Fetch API遵循同源策略。这意味着使用这些API的Web应用程序只能从加载该应用程序的相同来源请求资源,除非来自其他来源的响应包括正确的CORS标头。
来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
您实际上有3个选择: