如何捕获任何 XHR 请求

How to catch any XHR request?

本文关键字:请求 XHR 任何 何捕获      更新时间:2023-09-26

我正在寻找一种方法来监听在任何选项卡中完成的每个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);
    }, 
    {}, 
    []
);

我做错了什么?

[编辑:更新以包含apsillers的有用评论(见评论)。

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

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

最后,为了获取你所追求的各种信息(标头、请求等),你需要为各种事件注册适当的事件侦听器。请注意,您可以使用 details 参数的 requestId 属性将属于同一请求的事件链接在一起。