Safari:“由于访问控制检查,Fetch API 无法加载 <url>。”根据同源请求

问题描述 投票:0回答:1

我在我的 Web 应用程序和 Safari 中调用

fetch()
,获取 Promise 被拒绝,我在 Web Inspector 控制台中看到这样的错误:

Fetch API cannot load https://example.com/whatever due to access control checks.

这听起来像是 CORS 错误,但我正在发出同源请求(并且不涉及任何广告拦截器或任何东西)。发生此错误的其他原因是什么?

safari webkit fetch-api
1个回答
0
投票

尽管在记录的控制台消息中有“由于访问控制检查”的字样,但这并不总是与访问控制有关。

在WebKit源代码中,同步失败的任何网络请求都被假定为访问控制错误

我遇到了这个问题并且(在 WebKit 的本地调试版本上耐心地使用 lldb)发现在我的情况下,提取 被立即取消 因为在启动它的页面上有一个挂起的导航;它已经在卸载过程中。在 Safari 中,这似乎会阻止来自该页面的任何新请求被启动,并且它们会被记录为这个“访问控制”错误。

© www.soinside.com 2019 - 2024. All rights reserved.