【问题标题】:Cookies permission in Chrome extension doesn't workChrome 扩展程序中的 Cookie 权限不起作用
【发布时间】:2014-08-28 17:46:31
【问题描述】:

当我尝试添加 cookie 权限时,我的 Chrome 扩展程序出现问题。 一、manifest文件是这样的

"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.. 消息。那么为什么会这样呢?请帮我解决它...

【问题讨论】:

  • 尝试将您的权限修改为"https://www.box.com/*" 并检查返回的cookie 是否为null
  • @Xan 谢谢,那行得通。 null 和权限都是问题的根源。请将您的评论移至答案,以便我关闭问题:)
  • cookiespermission that doesn't cause warnings,这就是为什么您在权限列表中看不到它。

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


【解决方案1】:

代码有两个问题:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-08-17
    • 2013-10-08
    • 2018-09-24
    • 2012-06-03
    • 2014-05-25
    • 2014-06-01
    • 2017-04-01
    • 2015-01-16
    • 1970-01-01
    相关资源
    最近更新 更多