Safari Web 扩展中后台服务工作人员发出 HTTP 请求期间出现 CORS 问题

2024-04-06

链接到 Xcode 项目的存储库来测试问题:测试 CORS 问题 https://github.com/nick-kadutskyi/safari-ext-cors-issue

这个扩展使用 Manifest v3,我有example.com in host_permissions

"host_permissions": [
        "*://example.com/*"
    ]

当我跑步时fetch("https://example.com") in background.js我收到此错误:

[Error] Fetch API cannot load https://example.com/ due to access control checks.
[Error] Failed to load resource: Origin safari-web-extension://e0b5d7c7-c079-484b-8825-44d261383cb6 is not allowed by Access-Control-Allow-Origin. Status code: 200 (example.com, line 0)

在 Safari 版本 16.0(17614.1.25.9.10、17614)和 Safari 技术预览版 153(Safari 16.0、WebKit 17615.1.4.1)中进行了测试

在我使用的代码中chrome命名空间(在 Chrome 浏览器中测试它)但我遇到了同样的问题browser命名空间。

如果我在 Chrome 浏览器中运行此扩展程序而无需进行任何更改,则它可以完美运行 (chrome://extensions/→加载解压)

有没有办法在不更改服务器访问控制设置的情况下避免 CORS 问题?

Manifest v2 以这种方式工作得很好。

更新1:

目前的解决方法是使用后台脚本(在 v3 中已弃用)而不是后台服务工作线程。

而不是这个:

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

Do this:

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

更新 2:如何让您的扩展同时适用于 Chrome 和 Safari?

Chrome 仅支持

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

Safari 两者都支持service_worker and scripts但是当您使用 service_worker 时,它会出现 CORS 问题。

所以解决方案是在中传递具有不同值的扩展background field.


这是现在fixed https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#safari-web-extensions (and here https://bugs.webkit.org/show_bug.cgi?id=247509)在 16.4 中。

From: https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#safari-web-extensions https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#safari-web-extensions

Fixed CORS issue when doing fetch requests from a background service worker.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Safari Web 扩展中后台服务工作人员发出 HTTP 请求期间出现 CORS 问题 的相关文章

随机推荐

  • 如何在 C# Core Console 应用程序中使用 MemoryCache?

    我想在 NET Core 2 0 控制台应用程序中使用 Microsoft Extensions Caching Memory MemoryCache 实际上 在控制台或 asp net 应用程序中使用的库中 我创建了一个测试应用程序 us
  • OpenID,如何开发提供商

    目前我正在开发一些基础设施 并且已经实现了自己的 RESTful 身份验证机制 现在我想也许我不应该走这条路并使用行业标准 因此与我的项目的互操作性在身份验证和授权方面可能很琐碎并且更容易理解 查了一些文章后googling在 Stacko
  • 如何通过 QTest 访问 QMessageBox

    我正在创建一些自动化的图形用户界面测试在我的应用程序中使用QTest 我可以使用以下命令从我的应用程序访问小部件 savePushButton mainWindow gt findChild
  • Ajax + q翻译

    嗨 我遇到了同样的问题里克曾在这里 https stackoverflow com questions 7571643 qtranslate plugin and ajax requests rq 1 给出的答案是他必须 在代码中搜索链接请
  • python 中处理 Excel 文件的最佳库是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个很大的Excel 里面有很多工作表和工作表内相互链接的公式 我需要使用代码在一张纸中填充输入 并
  • NSTableView 排序

    我在 NSTableView 中有两列作为名称和薪水 有 5 10 个值 我想在单击两个列的标题后对这些列进行排序 互联网上有很多数据 但我无法使用这些数据 请帮我在可可中做到这一点 预先感谢并感谢任何帮助 每个表列都有一个方法setSor
  • 由 Javascript 填充的 QML ListView

    我刚刚意识到 根据一些 QML Bugreport ListView 缺少 JSON Delegate 所以我有两个选择 通过用Javascript或C 创建的模型来填充它 特别是我需要从预定义的 URL 下载 json 数据并将它们解析到
  • 如何在高图表中放置自定义标签

    我正在尝试执行官方 HighCharts 小提琴中的操作 http jsfiddle net gh get library pure highcharts highcharts tree master samples highcharts
  • 在 UISearchBar 中自动显示文本光标

    是否可以始终在 UISearchBar 中显示文本光标 不仅在触摸后 add this void viewDidAppear BOOL animated mySearchBar becomeFirstResponder super view
  • 正则表达式解析货币价值

    我需要在 AS3 中编写一个 RegExp 它将 Excel 格式的货币值解析为数字 例如 正则表达式 35 600 00 35600 并检查其格式是否正确 使用 作为千位分隔符 作为小数点 货币符号可以是任何符号 不仅仅是 并且可以位于开
  • 使用 IP 地址而不是域名发送电子邮件

    我试图避免通过 DNS 服务器将电子邮件发送到我托管的虚拟帐户之一上的地址 我知道我可以用方括号将 IP 地址括起来 但如何为服务器上的 虚拟 托管帐户指定邮箱用户名 换句话说 我在虚拟服务器上托管了多个域 所有域共享相同的 IP 地址 明
  • 如何更改列表框中单词的颜色

    我制作了一个带有文本框的表单 它接受一个单词并搜索一堆句子以查看其中是否有任何一个包含该单词 之后我必须显示这些句子并突出显示该单词 我的计划是制作一个列表框并添加里面的句子 我的问题是如何突出显示该单词 我想是通过更改颜色 以便可以区分它
  • Rubocop 仅检查修改的行

    我想在终端上仅针对我在 git 版本化项目中修改的行运行 rubocop 目前 通过谷歌搜索 我看到了适用于整个修改文件的脚本 I found this https gist github com skanev 9d4bec97d5a682
  • Google 网络字体与实际字体文件 - 适用于所有设备

    我正在寻找使用 Josefin Sans 它已列在 Google 网络字体中 我还有 eot svg ttf 和 woff 这意味着与文件完全兼容 据我所知 我的主要问题是 哪个更好 Google 字体加载速度更快吗 是不是更加兼容呢 或者
  • 在 Go 函数中返回本地数组的切片安全吗?

    如果我返回作为函数或方法的局部变量的数组切片 会发生什么情况 Go 是否将数组数据复制到创建的切片中make 容量与切片大小或数组大小匹配吗 func foo uint64 var tmp 100 uint64 end 0 for tmp
  • 无法使用可选参数推断泛型类型

    给定以下方法签名 为什么当显式命名参数时编译器无法自动推断类型 Visual Studio 2010 SP1 能够推断类型并且不会显示任何警告或错误 IEnumerable
  • 屏幕抓取:正则表达式还是 XQuery 表达式?

    我正在回答一些面试的测验问题 问题是关于我如何进行屏幕抓取 也就是说 假设您没有更好的结构化方法来直接查询信息 例如网络服务 则从网页中挑选内容 我的解决方案是使用XQuery表达 该表达式相当长 因为我需要的内容在 HTML 层次结构中相
  • 托管带有数据库的 asp.net 网站

    我在Microsoft Visual Studio 2010的帮助下创建了一个asp net网站 项目 各个项目的数据库是在Microsoft SQL Server Management Studio 2008的帮助下设计的 现在我想在互联
  • Azure 服务总线 1.1 无法启动

    服务总线网关未启动 首先 我尝试完全卸载所有Azure Fabric Service Bus类型的SDK和安装 我已经安装了两个Windows Azure Pack Service Bus 1 1 and Windows Azure Pac
  • Safari Web 扩展中后台服务工作人员发出 HTTP 请求期间出现 CORS 问题

    链接到 Xcode 项目的存储库来测试问题 测试 CORS 问题 https github com nick kadutskyi safari ext cors issue 这个扩展使用 Manifest v3 我有example com