You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Safari同源请求触发Fetch API访问控制检查错误的原因排查

同源Fetch请求在Safari中触发访问控制检查错误的其他原因

在Web应用中调用fetch()方法时,Safari浏览器中Promise被拒绝,Web Inspector控制台报错:

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

确认是同源请求且未启用广告拦截工具,除常规CORS问题外,还有以下可能的触发原因:

  • Safari隐私防护机制误判:Safari的"阻止跨站跟踪"功能可能将部分同源请求判定为跨站请求。比如页面通过第三方链接打开、请求携带的Cookie设置了SameSite=None但未搭配Secure属性,或是请求来自嵌入在第三方页面中的同源iframe,都可能触发该拦截。

  • 资源MIME类型校验失败:若服务器返回的资源MIME类型与请求预期不符,Safari的安全策略会触发访问控制检查。例如请求JSON数据但服务器返回text/plain类型,即使是同源请求,也可能被判定为风险请求。

  • 本地Hosts映射的特殊性:本地开发时修改hosts文件将域名指向本地IP(如example.com指向127.0.0.1),Safari可能不认可这种映射的同源关系,将请求视为跨域处理。

  • HTTP/HTTPS混合内容限制:当前页面为HTTPS协议,但请求的同源资源使用HTTP协议时,Safari会因混合内容安全限制拦截请求,部分场景下错误提示会归类到访问控制检查中。

  • 服务器安全头配置异常:服务器返回的Content-Security-Policy中connect-src规则限制了同源请求,或是Cross-Origin-Resource-Policy设置为same-site但请求不符合该规则,即使同源也会触发拦截。

  • 旧缓存策略干扰:若该域名曾有过跨域请求记录,Safari可能缓存了旧的访问控制策略,后续同源请求仍会受缓存规则影响。可尝试清除Safari的缓存与网站数据后重新测试。

内容的提问来源于stack exchange,提问作者Sophie Alpert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:03:22