每次访问某个站点时,我都会尝试获取 http 响应标头。我认为使用像下面这样的观察者就足够了:
const OBS = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService);
let httpRequestObserver ={
observe: function(subject, topic, data){
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
if (topic == "http-on-examine-response") {
headers=httpChannel.getAllResponseHeaders();
}
}
};
在启动方法中添加它,然后在关闭时将其删除:
OBS.addObserver(httpRequestObserver, "http-on-examine-response", false);//startup methode
OBS.addObserver(httpRequestObserver, "http-on-examine-response", false);//shutdown
但我在日志中得到了这个:
JavaScript Error: "httpChannel.getAllResponseHeaders is not a function"
我是不是走错了路,操作比看起来更复杂?这是针对 android 的 firefox 的扩展,我没有使用 sdk。谢谢你的帮助。