首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取扩展的http头

读取扩展的http头
EN

Stack Overflow用户
提问于 2013-07-17 01:06:18
回答 3查看 601关注 0票数 0

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

我想要获取的信息示例:

我有这样的代码:

代码语言:javascript
复制
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");
 }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-17 06:28:57

我从来没有使用过一次获得所有它们的方法,但您应该能够按照您正在做的方式单独获取它们。

我也为推荐人尝试过,但它不起作用,但我发现如果你这样做了:

代码语言:javascript
复制
 httpChannel.referrer.host 

(referrer有两个r),它显示referer的地址。

另外,你可能想看看httpfox的源代码,它做了你想做的事情。

您可以在以下链接中找到其他帮助:nsITraceableChannel, Intercept HTTP Traffic | Software is hard

还有这个:Howto: XHR Listening by a Firefox Addon

票数 0
EN

Stack Overflow用户

发布于 2013-07-17 02:14:57

我的两点意见。

JAVASCRIPT中的

FIDDLE DEMO

代码语言:javascript
复制
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
console.log(headers);
alert(headers)

PHP中的

代码语言:javascript
复制
<?php echo $_SERVER["HTTP_REFERER"]; ?>
票数 0
EN

Stack Overflow用户

发布于 2016-06-05 15:47:01

您的观察函数应如下所示:

代码语言:javascript
复制
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);
      }
    });
  }
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17682803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档