Chrome扩展manifest V2配置abc.com权限调用chrome.cookies.getAll报错如何解决
问题根因
- 你当前配置的主机权限
*://*.abc.com/存在两处不足:一是仅匹配abc.com的所有子域名(如www.abc.com、sub.abc.com),不包含abc.com根域名本身;二是路径仅写/仅能匹配域名根路径,无法覆盖该域名下所有路径的cookie读取需求。 - 报错中出现的
http://.abc.com/属于格式异常的URL,通常是调用chrome.cookies.getAll时传入的URL参数构造错误导致。
解决方案
1. 修正manifest.json权限配置
同时添加根域名和子域名的匹配规则,路径部分使用*覆盖所有路径:
{ "background": {...}, "browser_action": {...}, "permissions": [ "cookies", "storage", "webRequest", "webRequestBlocking", "*://abc.com/*", "*://*.abc.com/*" ] }
注意请删除JSON配置中多余的尾随逗号,避免格式校验失败。
2. 修正cookie接口调用参数
调用chrome.cookies.getAll时传入合法的URL参数,也可以搭配domain参数更精准过滤cookie,示例代码如下:
// 示例:获取abc.com及其所有子域名下的全部cookie chrome.cookies.getAll({ domain: "abc.com", url: "https://abc.com/" }, (cookies) => { // 后续业务逻辑 });
修改完成后重新加载扩展,即可在仅申请abc.com相关域名权限的前提下正常调用cookie接口,不会出现权限过宽的问题。
内容的提问来源于stack exchange,提问作者backslashN
相关产品推荐
相关产品推荐

