如何在Google Chrome扩展中获取web请求的结果?

7
当我使用Chrome API监听所有HTTP请求时,如何获取实际接收到的数据?
我的意思是,如果请求是在php页面上进行的(XMLHttpRequest),我该如何获取此页面的内容?

.

我现在正在使用ajax请求查询数据。但这不是一个好的解决方案。 主要问题是当请求使用POST方法时,从ajax查询接收到的数据与从HttpRequest接收到的数据不同。

2
webRequest API并没有提供读取响应体的方法。但是,既然您提到想要拦截AJAX请求,那么有一个解决方案。请参见使用JavaScript抓取/窃听AJAX数据? - Rob W
可能是重复的问题:使用JavaScript抓取/监听AJAX数据? - Rob W
实际上这不是同一个问题,因为我真的想获取XMLHttpRequest的结果。为什么谷歌不让我们访问响应体?这是安全问题吗? - Paul Fournel
2
除了重复提出的方法外,没有其他方法。由于性能问题,webRequest API不允许检查和修改响应正文 - 如果您想获得有关此功能的任何未来更新的通知,请为此问题加星:https://code.google.com/p/chromium/issues/detail?id=104058#c19 - Rob W
1个回答

1
抱歉,您不能通过webRequest获取响应正文内容,我的解决方法是尝试使用ajax请求第二次请求该URL。虽然这种方式很丑陋,我不得不使用后台脚本来获取内容,但它确实有效。
var get=function(url,callback){
var xmlRequest=new XMLHttpRequest();
xmlRequest.open('GET',url,true);
xmlRequest.send();

xmlRequest.onreadystatechange=function(){
 if(xmlRequest.readyState==4){
   callback(xmlRequest.responseText);
  }
 };
};

您可以从xmlRequest.responseText获取响应正文。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接