除非在客户端设置了自定义标头,否则 CORS 可以正常工作

发布于 2025-01-15 01:28:02 字数 541 浏览 0 评论 0 原文

配置

Jooby版本:2.13.0 使用Undertow JDK 17

我的 CORS 设置按预期工作(只有 1 个例外),配置如下:

Cors cors = new Cors().setMethods("GET", "POST", "PUT", "DELETE", "OPTIONS");
cors.allowOrigin("*");
cors.setExposedHeaders("RT");
cors.setUseCredentials(true);
decorator(new CorsHandler(cors));

当我在客户端上设置自定义标头时,会出现问题。突然我看到错误代码 403 的消息:

同源策略不允许读取 http://localhost:9801/test 处的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”丢失)。

请帮忙......

Config

Jooby Version: 2.13.0
Using Undertow
JDK 17

My setup of CORS works as expected (with only 1 exception) with the config below:

Cors cors = new Cors().setMethods("GET", "POST", "PUT", "DELETE", "OPTIONS");
cors.allowOrigin("*");
cors.setExposedHeaders("RT");
cors.setUseCredentials(true);
decorator(new CorsHandler(cors));

The problem appears when I set a custom header on the client. Suddenly I see the message with error code 403:

Same Origin Policy disallows reading the remote resource at http://localhost:9801/test. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Help please....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江南烟雨〆相思醉 2025-01-22 01:28:02

根据我调查的建议,发现如果我使用 Cors.setHeader() ,我就能让我的请求按预期工作。

也许还有其他解决方案,但这对我有用。

请注意,该方法不是累加性的,这意味着您必须添加默认标头,例如 OriginAccept,否则您的单个标头将是唯一的。

Based on the suggestion I investigated and found that if I used the Cors.setHeader() that I was able to get my requests working as expected.

There maybe other solutions but this worked for me.

Please note that the method is not accretive, meaning that you have to add the default headers like Origin and Accept, otherwise your single header will be the only one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文