2

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

背景.js

alert("1");
chrome.cookies.set({ url: "https://mywebsite.com", name: "SuperDuperTest" });
alert("2");

清单.json

“权限”:[“通知”、“ https://mywebsite.com ”、“cookies”、“http://* /*”、“https://*/*”]、

只有警报(“1”);永远火。警报 2 从来没有,为什么我的 chrome cookie 根本没有触发?

4

2 回答 2

8

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

示例代码

清单.json

注册后台页面并授予 Cookies 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
}

背景.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!。

点击查看大图

在此处输入图像描述

进一步调试

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

于 2013-01-22T11:49:07.203 回答
1

确保您声明了 cookie 权限。

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

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

来源:developer.chrome.com

于 2013-01-21T22:10:30.190 回答