WebExtensions - 尽管匹配网络请求,WebRequest事件仍未成功触发

时间:2018-03-12 23:06:18

标签: javascript firefox webrequest firefox-webextensions

我正在使用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在事件上设置的断点。该页面没有问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试拦截对www.facebook.com的请求,但您没有该域的主机权限(您确实拥有facebook.com但该域名不同)