4

我在尝试添加Cookie权限时遇到了Chrome扩展程序的问题。 首先,清单文件是这样Chrome扩展程序中的Cookie权限不起作用

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

但是,当我点击我的分机的铬权限属性://扩展/,没有显示出来没有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

尝试将您的权限修改为'“https://www.box.com/*”'并检查返回的Cookie是否为'null'。 – Xan

+0

@Xan谢谢,这是有效的。 'null'和许可都是问题的根源。请将您的评论移至答案,以便我可以结束该问题:) –

+2

'cookies'是[不会导致警告的权限](https://developer.chrome.com/extensions/permission_warnings#nowarning),这就是为什么你没有在权限列表中看到它。 – abraham

回答

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的网址。

相关问题