如何捕获任何XHR请求?

时间:2013-10-30 21:59:12

标签: javascript google-chrome-extension

我正在寻找一种方法来监听在任何标签内完成的每个XHR请求,并在alert()弹出窗口中输出结果(如果可能,在控制台中输出)。我想获得标题+请求+响应。

这是我的代码:

manifest.json

{
    "manifest_version": 2,

    "name": "Sample APP",
    "description": "Sample Description",
    "version": "1.0",

    "permissions": [
        "webRequest",
        "*://*/*"
    ],
    "background": {
        "scripts": ["script.js"]
    }
}

script.js

chrome.webRequest.onCompleted.addListener(
    function(details) {
        alert(details);
    }, 
    {}, 
    []
);

我做错了什么?

1 个答案:

答案 0 :(得分:1)

[编辑:已更新,以纳入 apsillers '有用的评论(请参阅评论)。]

在RequestFilter中,urls字段是必填字段。要侦听对任何URL的请求,请使用:

chrome.webRequest.onCompleted.addListener(
    function(details) {
        console.log(details);
    }, { 
        urls: ["<all_urls>"],
        types: ["xmlhttprequest"]   // <-- to narrow down to only AJAX requests
    }, []
);

最后,为了获得您所追求的各种信息(标题,请求等),您需要注册相应的 event-listeners for the various events 。请注意,您可以使用requestId参数的details属性将属于同一请求的事件链接在一起。