我有一个Chrome扩展程序,它会在发送请求之前修改请求的头部。我现在希望能够在同一个扩展程序中检查响应的头部。我搜索了整个Chrome扩展程序API,但没有找到任何感兴趣的内容。
这是我用来修改请求头的代码,也许它对你知道我是怎么做的很有用。
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {/*do something*/},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]);
有谁知道怎么做,或者能给我指出一个有趣的来源吗?谢谢
2条答案
按热度按时间8zzbczxx1#
我通过向DOM注入脚本来捕获网站发出的所有HTTP请求和响应。根据您的需求和环境,有several methods of doing it,例如ManifestV 3/V2。下面是我使用的一个:
inject.js:
这将在与manifest.json中的“content_scripts”“matches”匹配的网站中注入injected.js。在“js”中提到contentscript.js和inject.js。请参阅答案末尾的manifest.json。
现在,injected.js中实际捕获请求和响应的代码受到了How we captured AJAX requests from a website tab with a Chrome Extension的启发。另请参阅该文章中的评论部分。
injected.js:
manifest.json:
对于MV 2,最后一个块仅为
"web_accessible_resources": ["injected.js"]
hzbexzde2#
请参见live-headers示例。
http://code.google.com/chrome/extensions/examples/api/debugger/live-headers.zip
编辑:为了方便后人,你可以在live-headers.zip的bug/补丁存档网站https://chromiumcodereview.appspot.com/9289057上找到一个版本
随着最新版本(2021)不再包括zip,但这是目录https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/debugger/live-headers/?pathrev=226223