javascript - 尝试在本地文件的 Firefox Web 扩展中设置 cookie 时权限被拒绝
问题描述
我正在尝试从本地文件(使用文件协议:file:///[...])的页面上的 Web 扩展程序在 Firefox 中设置新的 cookie,但出现以下错误:
权限被拒绝设置 cookie {"domain":"","expirationDate":null,"firstPartyDomain":"","httpOnly":null,"name":"myCookie","path":null,"secure": null,"storeId":null,"url":"file:///E:/folder/mypage.html","value":"myvalue"}
这是我用来插入 cookie 的脚本:
var newCookie = {
domain: '',
name: 'myCookie',
value: 'myValue',
path: null,
secure: null,
httpOnly: null,
expirationDate: null,
storeId: null,
url: 'file:///E:/folder/mypage.html',
};
if (cookie.hostOnly) {
newCookie.domain = null;
}
browser.cookies.set(newCookie).then(function (e) {
console.log('success!');
}, function (e) {
console.error(e);
});
这些是 manifest.json 中配置的权限:
"permissions": [
"cookies",
"<all_urls>",
"tabs"
],
我想我必须需要额外的许可,但我在文档中找不到与此相关的任何内容。all_urls 应该包括每个协议。
我可以使用像 document.cookie = "myCookie=myValue"; 这样的简单代码在 devTools 中手动创建 cookie。
而且我还可以通过使用像 browser.tabs.executeScript({ code: document.cookie = "${newCookie.name}=${newCookie.value}"
});这样注入的内容脚本在页面中注入 cookie。
但这感觉像是一个 hack,我觉得我应该能够为此使用 browser.cookies API。
我在这里做错了什么?
解决方案
推荐阅读
- javascript - 用户登录后无法调用 lambda
- fiware-orion - Fiware Orion:订阅表达式中的布尔值
- logstash - Grok 模式未找到匹配项
- javascript - 为什么每个项目的总宽度不等于画布文本度量中的总和
- firebase - Dart SDK 版本与 pubspec.yaml 的依赖项冲突
- javascript - 尝试让 Express 和 React 连接时出现 404 错误
- javascript - 在我的谷歌登录代码中出现以前没有的错误
- javascript - 使用 jsonata 按键对对象进行分组
- python - python OS walk限制输出到某些文件
- c# - OpenXML SDK - 工作表颜色