Chrome扩展程序中的Cookie权限不起作用

时间:2014-07-08 05:22:15

标签: javascript google-chrome cookies google-chrome-extension

我尝试添加Cookie权限时,我的Chrome扩展程序出现问题。 首先,清单文件就像这样

"permissions": [
    "cookies",
    "https://api.box.com/*", 
    "https://www.box.com/api/*",
    "https://dl.boxcloud.com/*",
    "tabs",
    "identity",
  ],

但是当我在chrome:// extensions /中点击我的扩展程序的权限属性时,没有显示cookies权限。我不确定是否有问题,请帮我澄清一下。

主要问题是,当我运行代码时:

getCookies("https://www.box.com", "tokens", function(tokens){
        console.log("Token returned");     
});

function getCookies(domain, name, callback) {
    console.log("Getting cookies...");
    chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
        if(callback){
            console.log("Done getting cookies, calling back...");                    
            callback(cookie.value);
        }
    });
}

永远不会调用callback函数,因此永远不会打印Token returned消息。我可以在控制台中看到"Done getting cookies, calling back..消息。那为什么会这样呢?请帮我解决一下......

1 个答案:

答案 0 :(得分:2)

代码存在两个问题:

  1. 如果找不到Cookie,则会使用chrome.cookies.get调用cookie == null回调。

    因此,调用callback(cookie.value)是一个错误,不会被执行。

  2. 找不到Cookie,因为您传递的网址https://www.box.com与权限模式"https://www.box.com/api/*"不匹配。您需要更改模式或传递给chrome.cookies.get的网址。