获取响应头/响应体
Get Response Header/Body
我正在开发一个firefox插件,我正在听这样的http响应:
var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(httpObserver, "http-on-examine-response", false);
调用我的httpObserver对象,看起来像这样:
var httpObserver =
{
observe : function(aSubject, aTopic, aData)
{
aSubject.QueryInterface(Components.interfaces.nsIHttpChannel);
httpstatus = aSubject.responseStatus;
if(httpstatus == 200 && aSubject.contentType.toString().indexOf("text/") != -1)
{
alert("URL: " + aSubject.name + "'r'nStatus: " + httpstatus + "'r'nContentType: " + aSubject.contentType); //Works great
alert("Body: " + aSubject.responseText); //Is undefined, why?
}
else if(httpstatus == 404 && aSubject.contentType.toString().indexOf("text/html") != -1)
alert("Page not found!'r'nURL: " + aSubject.name + "'r'nContentType: " + aSubject.contentType);
}
};
我有以下问题:
我想从响应中获得整个 body和header,但我不知道如何。我曾经读到过服务器不在同一域中可能是一个问题,但是firefox如何处理它呢?
我已经做了大量的研究,但没有发现任何有用的东西,也许我遗漏了什么。
顺便说一句。:如果有帮助的话,我也可以访问请求对象
您将使用nsITraceableChannel
接口,它由所有HTTP请求实现。这允许您用自己的侦听器替换通道侦听器,这样您就可以在将onDataAvailable
调用中的数据传递给原始侦听器之前读取数据。下面是一些示例代码:http://www.softwareishard.com/blog/firebug/nsitraceablechannel-intercept-http-traffic/
相关文章:
- 如何从SeleniumWebdriver获取异步Javascript响应
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- Typescript angularjs$http获取响应类型(避免使用<any>)
- 通过mvc中的ajax动作链接获取关于成功的响应头
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 获取javascript函数中另一个javascript函数的响应
- 从http获取响应管理zip
- 在ajax请求中使用jquery获取javascript响应UJS
- 无法获取SOAP请求的响应文本
- 获取 API 响应对象并替换(映射)所有键
- 如何在使用 DATATABLES 发送到模板之前获取 AJAX 响应
- 获取从 .post() 到 PHP 文件的响应,但只能在 MVC 中获取
- 获取 JSON 编码响应中的数组键
- 如何获取从 AJAX 到脚本的发送响应
- 如何从 JSON 响应获取数据
- 从 JavaScript 获取数据 从 AJAX (JSON) 响应获取数据
- 将 request.https 响应获取到变量中
- JSON HTTP响应-获取单个整数
- 从http.get()响应获取url
- 如何在页面上显示facebook的响应/获取facebook用户的数据