chrome.cookies.set甚至没有运行

时间:2013-01-21 22:01:26

标签: javascript google-chrome-extension

以下代码由于某种原因不起作用:

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从不这样做,为什么我的铬饼干根本不会被解雇?

2 个答案:

答案 0 :(得分:7)

在哪里查看您的Cookie是否已设置? 请使用console.log()代替alert()

示例代码

的manifest.json

已注册的背景页面和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
}

background.js

cookies.html

设置Cookie的简单代码
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!。

Click for Large Image

enter image description here

进一步调试

如果此示例代码不起作用,chrome.extension.lastErrorchrome.runtime.lastError的值是什么?

答案 1 :(得分:2)

确保您声明了Cookie权限。

  

要使用Cookie API,您必须在其中声明“cookies”权限   您的清单,以及其cookie的任何主机的主机权限   你想要访问。例如:

{
  "name": "My extension",
  ...
  "permissions": [
    "cookies",
    "*://*.google.com"
  ],
  ...
}

来源:developer.chrome.com