http-headers - origin - codigos http para pagina web
SDK de complemento de Firefox: obtenga encabezados de respuesta http (1)
Soy nuevo en el desarrollo de complementos y he estado luchando con este problema desde hace un tiempo. Aquí hay algunas preguntas que de alguna manera están relacionadas, pero aún no me han ayudado a encontrar una solución.
Por lo tanto, estoy desarrollando un complemento de Firefox que lee un encabezado particular cuando cualquier página web se carga en cualquier pestaña del navegador.
Puedo cargar pestañas de observador, pero no creo que haya una forma de leer los encabezados http dentro del siguiente código (simple), solo url. Por favor corrígeme si estoy equivocado.
var tabs = require("sdk/tabs");
tabs.on(''open'', function(tab){
tab.on(''ready'', function(tab){
console.log(tab.url);
});
});
});
También puedo leer encabezados de respuesta al observar eventos http como este:
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);
}
}
};
El problema (y una gran fuente de confusión personal) es que cuando estoy leyendo los encabezados de respuesta no sé a qué solicitud responde. Quiero de alguna manera mapear la solicitud (especialmente url de solicitud) y el encabezado de respuesta ("the_header_that_i_need").
Estás prácticamente allí, eche un vistazo al código de muestra aquí para ver más cosas que puedes hacer.
onExamineResponse: function (oHttp)
{
try
{
var header_value = oHttp.getResponseHeader("<the_header_that_i_need>");
// URI is the nsIURI of the response you''re looking at
// and spec gives you the full URL string
var url = oHttp.URI.spec;
}
catch(err)
{
console.log(err);
}
}
Además, las personas a menudo necesitan encontrar la pestaña relacionada, que responde a Cómo encontrar la pestaña que activó un evento http-on-examine-response