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

相關問題