Safari 扩展服务工作者未发送 cookie

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

我有一个 Chrome 扩展程序,可以在 Chrome 中正常运行。将其转换为 Safari 扩展时,我遇到了问题。

当用户首次打开扩展程序弹出窗口时,扩展程序会打开一个新选项卡,用户需要在其中登录。登录后,用户将拥有一个带有会话令牌的 cookie。问题是,当我使用扩展服务工作者的

fetch
发出 POST 请求时,它不会发送 cookie。

当我禁用 Safari 偏好设置中的“防止跨站点跟踪”复选框时,它确实有效,但我们不能要求用户这样做。

当我从扩展弹出窗口中的脚本发送请求时,它也可以工作,但我需要在后台定期发出请求,无需用户交互。

有解释此行为的文档吗?有办法让它发挥作用吗?

javascript google-chrome-extension safari safari-web-extension
1个回答
0
投票

看起来像是 Safari 中的一个错误。我找到了一个解决方法:使用后台脚本而不是服务工作者。

而不是这个:

"background": {
  "service_worker": "background.js"
},

使用这个:

"background": {
  "scripts": ["background.js"]
},

请注意,Chrome 不再支持后台脚本。

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