【问题标题】:CORS error, only in HTTP/2CORS 错误,仅在 HTTP/2 中
【发布时间】:2018-07-25 20:26:30
【问题描述】:

我有一个托管在 Azure 应用服务中的 .NET 应用,它充当另一个应用的 Web 服务。它有数百个端点都可以正常工作。它一直在运行 HTTP 1.1。我正在尝试切换到 HTTP 2.0。启用 HTTP 2.0 后,一个端点(到目前为止似乎是唯一一个受影响的端点)失败并在客户端出现 CORS 错误。

这是它运行 HTTP 1.1 的时候:

现在在运行 HTTP 2.0 时:

我不知道 CORS 请求和 HTTP/2 之间有任何直接关系,但 HTTP/2 显然使这个请求失败 - 但我不知道为什么。

任何想法,我可以检查一下吗?如果它有帮助,该页面可以公开访问 here(它会显示错误,但这是 CORS 错误的结果)。

更新

如果在 Firefox 网络调试工具中,我选择了失败的请求并选择“编辑并重新发送”,然后“按原样”重新发送(不更改任何内容),则请求成功。 . 同样的请求在 Postman 中手动发送时也会成功...但它在浏览器中不起作用(尝试过 Firefox、Chrome 和 Edge)。

【问题讨论】:

    标签: cross-domain http2


    【解决方案1】:

    我终于明白了。我注意到当直接从浏览器开发工具中重放请求时,它剥离了 Authorization 标头,因为它是空的。

    这个错误的原因确实是请求有一个空的授权标头

    显然这对 HTTP 1.1 来说很好,但对 HTTP 2.0 则不然。天知道为什么浏览器会报告这是一个跨域错误。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2020-03-06
      • 2018-02-25
      • 2016-06-08
      相关资源
      最近更新 更多