我正在使用WebExtensions开发扩展,并且遇到了WebRequest事件的问题。我试图拦截对Facebook.com新闻源发送以加载更多帖子的请求的响应,这些帖子通过URL https://www.facebook.com/ajax/pagelet/generic.php/LitestandTailLoadPagelet?dpr=*
发生(其中*
是一大堆标识符)。此请求显示在devtools中:
image
这是相关的清单位:
{
"permissions": [
"*://facebook.com/*",
"tabs",
"activeTab",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [{
"matches": ["*://facebook.com/", "*://facebook.com/groups/?*"],
"js": ["/content-script.js"],
"css": ["/css/styles.css"]
}]
}
在background.js中,我在文件的最顶部有以下事件监听器(这里的顺序不重要):
browser.webRequest.onHeadersReceived.addListener(
details => { console.log("event"); },
{ urls: ["https://www.facebook.com/ajax/pagelet/generic.php/LitestandTailLoadPagelet?dpr=*"] },
["blocking", "responseHeaders"]
);
然而,发出请求(甚至重新发送上面的图片使用相同的url)不会触发console.log甚至是通过devtools在事件上设置的断点。该页面没有问题。
有什么想法吗?
答案 0 :(得分:0)
您正在尝试拦截对www.facebook.com
的请求,但您没有该域的主机权限(您确实拥有facebook.com
但该域名不同)