2011-10-10 163 views
2

我正在開發一個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); 
} 
}; 

我有以下問題:

我想獲得整個身體和標題從響應,但我不知道如何。 我曾經讀過這可能是服務器不在同一個域中的問題,但是firefox如何處理它呢?

我已經做了很多的研究,但我沒有發現任何有用的,也許我錯過了什麼..

順便說一句:我就可以訪問請求對象以及是否有幫助。

回答