gpt4 book ai didi

javascript - 获取响应头/正文

转载 作者:行者123 更新时间:2023-11-29 20:14:27 28 4
gpt4 key购买 nike

我正在开发一个 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);
}
};

我遇到了以下问题:

我想从响应中获取完整 正文和 header ,但我不知道如何获取。我曾经读到服务器不在同一个域中可能是一个问题,但是firefox如何处理呢?

我已经做了很多研究,但我没有找到任何有用的东西,也许我错过了什么......

顺便说一句:如果有帮助的话,我也可以访问请求对象。

最佳答案

您将使用 nsITraceableChannel interface为此,它由所有 HTTP 请求实现。这允许您用自己的监听器替换 channel 监听器,这样您就可以在将数据传递给原始监听器之前在 onDataAvailable 调用中读出数据。这里有一些示例代码就是这样做的:http://www.softwareishard.com/blog/firebug/nsitraceablechannel-intercept-http-traffic/

关于javascript - 获取响应头/正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7712886/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com