Google chrome extension Chrome extensions-除了Chrome.devtools.network之外,还有其他读取响应主体的方法吗?
我想阅读(而不是修改)所有符合Chrome扩展中某些模式的请求的响应正文。我目前正在使用,它提供了一个带有Google chrome extension Chrome extensions-除了Chrome.devtools.network之外,还有其他读取响应主体的方法吗?,google-chrome-extension,google-chrome-devtools,Google Chrome Extension,Google Chrome Devtools,我想阅读(而不是修改)所有符合Chrome扩展中某些模式的请求的响应正文。我目前正在使用,它提供了一个带有getContent()方法的Request对象。这工作得很好,但是当然需要打开devtools才能让扩展工作。理想情况下,扩展应该是一个弹出窗口,但似乎不允许访问响应主体。允许WebRequestAPI编辑响应主体有一个简单的方法,但是webRequest甚至可以读取它们吗?如果没有,是否有其他方法可以读取devtools扩展之外的响应正文?如果您有此请求模式,则可以在background
getContent()
方法的Request
对象。这工作得很好,但是当然需要打开devtools才能让扩展工作。理想情况下,扩展应该是一个弹出窗口,但似乎不允许访问响应主体。允许WebRequestAPI编辑响应主体有一个简单的方法,但是webRequest甚至可以读取它们吗?如果没有,是否有其他方法可以读取devtools扩展之外的响应正文?如果您有此请求模式,则可以在background.html文件中运行类似的内容:
to表示不支持阅读:
不幸的是,这一要求并非微不足道。(…)关于阅读回复正文:从性能角度来看,这是一个挑战。(…)所以总的来说,这是不容易实现的
所以,不,除了devtools之外,似乎没有一种扩展访问网络响应机构的方法。我就是这么做的
chrome.webRequest
和requestBody
获取post请求正文解码器
将主体解析为字符串chrome.webRequest.onBeforeRequest.addListener(
功能(详情){
如果(details.method==“POST”)
//用这个来解码你文章的正文
var postedString=decodeURIComponent(String.fromCharCode.apply)(null,
新的Uint8Array(details.requestBody.raw[0].bytes));
console.log(postedString)
},
{URL:[“”]},
[“阻止”,“请求主体”]
);
这只是说明如何提出请求。OP询问如何监控浏览器发出的任何请求的响应主体。AFAIK chrome.devtools.network.onRequestFinished仍然是获取主体的唯一方法,需要打开调试器。问题是关于响应主体,而不是请求主体。
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();