以下代码由于某种原因不起作用:
Background.js
alert("1");
chrome.cookies.set({ url: "https://mywebsite.com", name: "SuperDuperTest" });
alert("2");
的manifest.json
“权限”:[“通知”,“https://mywebsite.com”, “cookies”,“http:// * / *”,“https:// * / *”],
仅警报(“1”);永远火了。警报2从不这样做,为什么我的铬饼干根本不会被解雇?
答案 0 :(得分:7)
在哪里查看您的Cookie是否已设置?
请使用console.log()
代替alert()
已注册的背景页面和Cookie API的授予权限。
{
"name": "Cookie API Demo",
"version": "1",
"description": "http://stackoverflow.com/questions/14448039/chrome-cookies-set-doesnt-even-run",
"permissions": [
"cookies",
"<all_urls>"
],
"background": {
"scripts": [
"background.js"
]
},
"manifest_version": 2
}
为cookies.html
页
chrome.cookies.set({
"name": "Sample1",
"url": "http://developer.chrome.com/extensions/cookies.html",
"value": "Dummy Data"
}, function (cookie) {
console.log(JSON.stringify(cookie));
console.log(chrome.extension.lastError);
console.log(chrome.runtime.lastError);
});
转到https://developer.chrome.com/extensions/cookies.html并打开此处显示的开发人员工具,您可以看到正在设置Cookie!。
如果此示例代码不起作用,chrome.extension.lastError
和chrome.runtime.lastError
的值是什么?
答案 1 :(得分:2)
确保您声明了Cookie权限。
要使用Cookie API,您必须在其中声明“cookies”权限 您的清单,以及其cookie的任何主机的主机权限 你想要访问。例如:
{
"name": "My extension",
...
"permissions": [
"cookies",
"*://*.google.com"
],
...
}