当使用http-on-modify-request发出http请求时,我想要获得http头的完整信息。
我想要获取的信息示例:

我有这样的代码:
myObserver.prototype = {
observe: function(subject, topic, data) {
if("http-on-modify-request"){
var httpChannel =
subject.QueryInterface(Components.interfaces.nsIHttpChannel);
alert("URI: " + httpChannel.originalURI.spec);
alert("User-Agent: " + httpChannel.getRequestHeader('user-agent'));
}
},
register: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.addObserver(this, "http-on-modify-request", false);
},
unregister: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.removeObserver(this, "http-on-modify-request");
}
}发布于 2013-07-17 06:28:57
我从来没有使用过一次获得所有它们的方法,但您应该能够按照您正在做的方式单独获取它们。
我也为推荐人尝试过,但它不起作用,但我发现如果你这样做了:
httpChannel.referrer.host (referrer有两个r),它显示referer的地址。
另外,你可能想看看httpfox的源代码,它做了你想做的事情。
您可以在以下链接中找到其他帮助:nsITraceableChannel, Intercept HTTP Traffic | Software is hard
还有这个:Howto: XHR Listening by a Firefox Addon
发布于 2013-07-17 02:14:57
我的两点意见。
JAVASCRIPT中的
FIDDLE DEMO
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
console.log(headers);
alert(headers)PHP中的
<?php echo $_SERVER["HTTP_REFERER"]; ?>发布于 2016-06-05 15:47:01
您的观察函数应如下所示:
observe: function(subject, topic, data) {
if (topic === "http-on-modify-request") {
var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
alert("URI: " + channel.URI.asciiSpec);
channel.visitRequestHeaders(function(name, value) {
// do something with each header
if (name === 'User-Agent') {
alert(name+': '+value);
}
});
}
},https://stackoverflow.com/questions/17682803
复制相似问题