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

Safari扩展Content Script触发Fetch请求遇CORS跨域错误求助

Safari Web Extension CORS问题解决方案

你遇到的是Safari的已知bug:当Background Script的Fetch请求由Content Script发送的消息触发时,Safari会错误地将扩展的safari-web-extension://[id]作为Origin头发送给服务器,导致CORS校验失败;而弹窗触发请求时,Origin处理逻辑正常,所以不会报错。

临时解决方法

  • 手动覆盖Origin头:在Background发起请求时,手动设置一个服务器允许的Origin值,或者移除Origin头(部分服务器接受无Origin的请求)。示例代码:
fetch('https://apiurl', {
  headers: {
    'Origin': 'https://your-trusted-domain.com' // 替换为服务器已允许的域名
  },
  // 其他请求配置(如method、body等)
})

如果不需要读取响应内容,也可以尝试使用no-cors模式(注意此模式下无法获取响应数据,仅适用于只需要发送请求的场景):

fetch('https://apiurl', {
  mode: 'no-cors'
})
  • 无需修改服务器或全局Safari设置:服务器无法适配每个用户的扩展ID(每个扩展的safari-web-extension://id都不同),全局关闭跨域限制也不适用于生产环境,核心是通过上述代码适配Safari的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:05:25