我想阅读(而不是修改)与 Chrome 扩展中的某些模式匹配的所有请求的响应正文。我目前正在使用chrome.devtools.network.onRequestFinished,它为您提供了一个Request
带有getContent()
方法的对象。这工作得很好,但当然需要打开 devtools 才能使扩展工作。理想情况下,扩展将是一个弹出窗口,但chrome.webRequest.onCompleted似乎无法访问响应正文。有一个功能请求允许 webRequest API编辑响应正文 - 但 webRequest 甚至可以读取它们吗?如果没有,是否有任何其他方法可以读取 devtools 扩展之外的响应正文?
问问题
11585 次
3 回答
7
您链接到的功能请求意味着不支持阅读:
不幸的是,这个请求并不是微不足道的。(...) 关于阅读响应正文:从性能的角度来看,这是具有挑战性的。(...)所以总的来说,这并不容易实现......
所以,不,除了 devtools 之外,似乎没有办法让扩展访问网络响应主体。
于 2013-08-26T14:32:56.830 回答
-2
这是我所做的
- 我使用
chrome.webRequest
&requestBody
来获取帖子请求正文 - 我使用了
decoder
将正文解析为字符串
这是一个例子
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if(details.method == "POST")
// Use this to decode the body of your post
var postedString = decodeURIComponent(String.fromCharCode.apply(null,
new Uint8Array(details.requestBody.raw[0].bytes)));
console.log(postedString)
},
{urls: ["<all_urls>"]},
["blocking", "requestBody"]
);
于 2019-06-10T06:51:23.550 回答
-5
如果你有这种请求模式,你可以在你的 background.html文件中运行类似的东西:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/" + yourStringForPattern, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var body = xhr.responseText;
// call some function to do something with the html body
}
}
xhr.send();
于 2012-08-08T08:30:26.223 回答