我正在尝试使用本地文件页面上的Web扩展名在Firefox中设置新的cookie,该页面是本地文件(文件协议:file:/// [...]),并且出现以下错误:< / p>
拒绝设置Cookie {“ domain”:“”,“ expirationDate”:null,“ firstPartyDomain”:“”,“ httpOnly”:null,“ name”:“ myCookie”,“ path”:null,“安全”: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应该包含所有协议。
我能够使用类似这样的简单代码在devTools中手动创建cookie document.cookie =“ myCookie = myValue”;
我还可以使用这样注入的内容脚本在页面中注入cookie
browser.tabs.executeScript({代码:document.cookie = "${newCookie.name}=${newCookie.value}"
});
但是,这感觉像是一种破解,我觉得我应该能够为此使用browser.cookies API。
我在这里做什么错了?