我目前正在将一个插件从jetpack移植到WebExtension API。我需要不断更新带有数据的浏览器操作(工具栏按钮)(例如设置其徽章文本)。
为此,我想从我的扩展程序中的background script请求页面的API,当用户登录时可以访问(即设置了cookie)。到目前为止我做了什么:
我给了自己host permissions,这是内容脚本请求所必需的。
但是,content scripts用于将JS注入用户访问的页面。
我创建了一个后台脚本,使用fetch
向API发出请求。
但是,当从后台脚本查询时,API告诉我没有人登录,而我可以通过浏览器完美地访问它。
这是manifest.json
:
{
"background": {
"scripts": ["background.js"]
},
"permissions": [
"*://subdomain.domain.com/*"
]
}
如何使用持续运行的后台脚本来使用用户的cookie来访问此API?
答案 0 :(得分:1)
您需要在credentials
fetch()
选项
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch
答案 1 :(得分:1)
Firefox对cookie具有更严格的cors限制。我通过使用注入到具有相同域的页面上的内容脚本进行api调用来解决此问题。该api调用生成了一个auth令牌,该令牌用于后台页面的api调用,并在后端启用了cors以便在auth标头中包含令牌的请求。