【发布时间】:2020-05-08 17:44:13
【问题描述】:
我正在尝试将 Angular 8 中的前端连接到使用 Spring 用 Java 编写的后端。
我的 Spring 后端在 localhost:8080 的 Tomcat 服务器上运行,Angular 在 localhost:4200 上打开。 当我尝试注册用户(或执行任何操作)时,我收到此错误:
从 'http://localhost:8080/Revvit/users' 访问 XMLHttpRequest 来源“http://localhost:4200”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
在 Spring 中的 UserController 类中,我用
注释了控制器@CrossOrigin(origins= "*", allowedHeaders="*")
@Controller
public class UserController {............
但是,我的控制台中仍然收到与上述相同的消息。
所以,我假设我必须在我的 Angular 项目中添加一些允许 CORS 的标头,但是我将在哪里以及如何合并它?
【问题讨论】:
-
我认为这个链接可能有用spring.io/guides/gs/rest-service-cors
-
如果您有状态请求,则不允许跨源 *!
-
您应该尝试在控制器中添加不带参数的“@CrossOrigin”,然后在 DEBUG 级别激活 log4j 或 logback conf 中的“org.apache.http.headers”日志类别以查看发生了什么(是否存在预期的响应标头?)。
标签: java angular spring http cors