【问题标题】:Edge fails requests to the same domain due to CORS由于 CORS,Edge 对同一域的请求失败
【发布时间】:2019-02-21 14:52:06
【问题描述】:

我在 example.com 上的 SPA 应用程序向 example.com/api 发出请求。 AFAIK 这不应该需要任何 access-control-allow-origin 标头,因为原点和目标是相同的。

但是我得到以下错误;

SEC7120:[CORS] 原点“https://example.com”未找到 Access-Control-Allow-Origin 响应中的“https://example.com” 跨域资源的标头位于 'https://example.com/iam/blablablabla'

此应用程序可在 Chrome 或 Firefox 上完美运行。它仅在 Edge 上失败。我在这里缺少什么吗?你能告诉我一些方向来理解我遇到的问题吗?

附:我继续在我的服务器上添加域作为允许的 CORS 来源。它也没有工作。

【问题讨论】:

  • 您能告诉我们您发送的请求标头和收到的响应标头吗?
  • 如果这是一个需要预检的请求,那么 Edge 中存在导致此问题的错误。您能否检查在 Internet 选项中将“example.com/iam/blablablabla”添加到受信任区域是否可以解决此问题?

标签: cors single-page-application microsoft-edge


【解决方案1】:

我遇到了同样的问题,并经历了寻找修复的艰苦过程。

这与版本 42.17434 中 Edge 的 fetch 实现中的错误有关。这已在版本 44.17763(2018 年 11 月及以后)中得到修复。您可以通过单击右上角的省略号,单击“设置”并滚动到底部来找到您的 Edge 版本。

这个问题的核心是,虽然大多数浏览器实现会在省略凭据选项时发送默认选项 credentials: 'same-origin',但 Edge 不会。您应该能够通过在请求中添加凭据同源选项来解决旧 Edge 构建的问题:

fetch(url, { credentials: 'same-origin' });

Related Edge 问题单:

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 2016-06-18
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    相关资源
    最近更新 更多