为简化问题,让我这样描述一下。 我想在某个chrome窗口获得xhr响应时执行一个函数。 我不知道这个请求究竟是什么样的,因为这个请求的编码参数,例如:api.xxx.com/rest?random = 123
所以我认为我不能使用
chrome.devtools.network.onRequestFinished.addListener(function callback)
或
chrome.webRequest.onCompleted.addListener(function callback)
两者都需要指定请求详细信息。
答案 0 :(得分:3)
这些事件的侦听器不需要您指定请求详细信息。相反,它们会在被召唤时为您提供这些细节。
由于您想要侦听任何XHR请求,因此您可以定义特殊<all_urls>
匹配模式(或*://*/*
以将其限制为http/https
个请求。
E.g:
chrome.webRequest.onCompleted.addListener(function (details) {
// Process the XHR response.
...
}, {urls: ['<all_urls>']});
请勿忘记根据您的要求申报相应的权限 例如:
// In `manifest.json`:
...
"permissions": {
...
"webRequest",
"<all_urls>" // <-- add this to listen for XHR from all pages
]