【发布时间】:2019-09-11 02:31:57
【问题描述】:
您好开发者社区, 我正在从 Angular 6 客户端访问 RESTful API(用 Spring Hibernate 编写)。当我从本地运行 Angular 层时,我不断收到 CORS 这个错误:
“从源 'http://localhost:4200' 访问 XMLHttpRequest 在 'http:///SpringDemoSecurity/login' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok状态。” 我在来自 Java 层的响应中添加了 Allow-Access-* 标头,但没有帮助。我可以在邮递员应用程序的响应中看到这些标题。我无法从我的浏览器中消除这些错误。
跟踪堆栈溢出和其他地方的许多线程以在请求和响应对象中添加所有标头,并使用 Postman REST 客户端应用程序检查它们的存在,但没有用。 Java 层是 AWS EC2 实例,而 Angular 在本地运行。
下面是我的 Filter 类中的 Java 代码 sn-p:
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Max-Age", "864000");
response.addHeader("Access-Control-Allow-Methods", "GET, OPTIONS, HEAD, PUT, POST, PATCH, DELETE");
response.addHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,authorization,token");
response.addHeader("Access-Control-Allow-Credentials", "true");
// For HTTP OPTIONS verb/method reply with ACCEPTED status code -- per CORS handshake
if (request.getMethod().equals("OPTIONS")) {
response.setStatus(HttpServletResponse.SC_ACCEPTED);
return;
}
我想不通。在堆栈溢出上尝试了很多东西。 对此的任何帮助都将受到高度赞赏。 - 斯瓦蒂
【问题讨论】:
标签: javascript angular spring jakarta-ee cors