【问题标题】:What does it mean for a CORS preflight request to be chained to its target resource将 CORS 预检请求链接到其目标资源意味着什么
【发布时间】:2016-07-24 15:59:16
【问题描述】:

我正在为 Jetty Servlet 配置 CORS,并发现一些 XHR 请求在预检时被拒绝。我已经设置了 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers,并且根据 CrossOriginFilter 的 Jetty 文档,默认的 Access-Control-Allow Origin 标头是“*”。所以一切都应该被允许通过。

还有另一个过滤器选项,我在查找以下信息时遇到问题:

链预检 如果真正的预检请求链接到它们的目标资源 正常处理(作为 OPTION 请求)。否则过滤器会 对预检的响应。默认为真。

过滤器“响应预检”是什么意思?将请求链接到目标意味着什么?我发现的有关此选项的大多数资源都使用完全相同的措辞,并且没有提供任何进一步的解释。

this stackoverflow response,作者说:

注意:CrossOriginFilter 有一个参数chainPreflight,默认设置为true。这需要设置为假。这是 CORS 转发 POST 而不是 OPTIONS 到 SOLR 的关键。此外,订单很重要!

虽然我没有构建 Solr 应用程序,但我想知道这是否是我的配置出错的地方。任何有助于更好地理解此选项的帮助将不胜感激!

【问题讨论】:

    标签: java jetty cors


    【解决方案1】:

    如果 chainPreflight 选项设置为 true(默认情况下),则 CrossOriginFilter 将添加所需的访问控制标头,并将请求传递到端点以进行进一步处理。目标端点应该有一些处理预检请求的逻辑。

    如果chainPreflight 选项为false,则CrossOriginFilter 将添加所需的访问控制标头并直接响应请求。

    查看my blog post 获取插图。

    【讨论】:

    • 很棒的博文。我喜欢这个小图表! :) - 我从阅读文档中得出了同样的结论。但是很高兴找到该推理的确认。 - 对我来说,chainPreflight=false 似乎在我的应用程序中最有意义。
    • 感谢您的反馈!我很难将我的头围绕在文档上,而绘图总是有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多