我開發了一個與IP電話通信的Chrome擴展。瀏覽器重啓後Chrome瀏覽器擴展失去請求的權限
通信在通過XMLHttpRequest
對象發送POST請求的事件頁面中完成。
由於電話的主機名或IP地址在選項頁面中配置,因此我在清單文件中添加了optional_permissions
,並在用chrome.permissions.request
保存選項後向用戶請求。
,直到我重新啓動鉻跨來源XHR現在工作沒有任何問題......
重新啓動Chrome瀏覽器後,好像請求的權限丟失,我得到的典型 is not allowed by Access-Control-Allow-Origin
錯誤。
當我點擊擴展權限時,我也可以看到我的請求的權限不再列出。
由於chrome.permissions.request
僅適用於用戶手勢,所以在加載我的擴展程序或運行時無法請求它。如果我在我的選項頁面中再次請求權限,我不會再被問到是否允許或不允許將權限授予,並且所有事情都照常進行。
有沒有辦法讓這個權限在請求後被持久授予?我只想讓擴展程序訪問它所需的端點。
非常感謝。
聽起來像一個錯誤。我還沒有遇到Chrome中可選許可API的問題。你確定你沒有撤銷其他地方的權限嗎? –
我想不出我怎麼可能撤銷它。到目前爲止,我的代碼中沒有對'chrome.permissions.remove'的調用。我的清單文件中的行如下所示:''optional_permissions「:[」*:// */CGI/Execute「]'我的請求如下所示:'chrome.permissions.request({origins:['http: //'+ phoneAdress +'/ CGI/Execute']},...' – Chris
我猜這個問題在你申請'*:// */CGI/Execute'而不是聲明的可選權限的子集時解決了 –