我如何使用chrome-extension听xhr响应?

时间:2013-11-30 13:44:59

标签: javascript google-chrome google-chrome-extension xmlhttprequest

为简化问题,让我这样描述一下。 我想在某个chrome窗口获得xhr响应时执行一个函数。 我不知道这个请求究竟是什么样的,因为这个请求的编码参数,例如:api.xxx.com/rest?random = 123

所以我认为我不能使用

chrome.devtools.network.onRequestFinished.addListener(function callback)

chrome.webRequest.onCompleted.addListener(function callback)

两者都需要指定请求详细信息。

1 个答案:

答案 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
]
相关问题