Я новичок в разработке надстройки, и я уже некоторое время борюсь с этой проблемой. Здесь есть некоторые вопросы, которые каким-то образом связаны, но они пока не помогли мне найти решение.Дополнение к SDK для Firefox: получить заголовки ответов HTTP
Итак, я разрабатываю надстройку Firefox, которая читает один конкретный заголовок, когда любая веб-страница загружается на любую вкладку в браузере.
Я могу загружать вкладку наблюдателя, но я не думаю, что есть способ прочитать заголовки http внутри следующего (простого) кода, только URL. Пожалуйста, поправьте меня, если я ошибаюсь.
var tabs = require("sdk/tabs");
tabs.on('open', function(tab){
tab.on('ready', function(tab){
console.log(tab.url);
});
});
});
Я также возможность читать заголовки ответа HTTP, наблюдая события, как это:
var {Cc, Ci} = require("chrome");
var httpRequestObserver =
{
init: function() {
var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
observerService.addObserver(this, "http-on-examine-response", false);
},
observe: function(subject, topic, data)
{
if (topic == "http-on-examine-response") {
subject.QueryInterface(Ci.nsIHttpChannel);
this.onExamineResponse(subject);
}
},
onExamineResponse: function (oHttp)
{
try
{
var header_value = oHttp.getResponseHeader("<the_header_that_i_need>"); // Works fine
console.log(header_value);
}
catch(err)
{
console.log(err);
}
}
};
Проблема (и основной источник личного замешательства) в том, что, когда я читаю ответ я не знаю, к какому запросу ответ отвечает. Я хочу как-то отобразить запрос (особенно адрес запроса) и заголовок ответа («the_header_that_i_need»).
Спасибо за указатели Bryan! Я также узнал, что в onExamineResponse я могу вызвать oHttp.name, которое возвращает URL-адрес запроса. Я удивлен, что заголовки недоступны в «готовом» событии вкладки. Страница загружена, поэтому я думаю, что заголовки там удобны. – mikko76