Вы не можете сделать это с помощью модуля request
, вам придется использовать обычный XMLHttpRequest
с помощью хром доступа . Примерно так должно работать:
var {Cc, Ci} = require("chrome");
var request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
.createInstance(Ci.nsIJSXMLHttpRequest);
request.open("GET", "...");
request.onload = function()
{
onUnload.unload();
var arrayBuffer = request.response;
if (arrayBuffer)
{
var byteArray = new Uint8Array(arrayBuffer);
...
}
};
request.onerror = function()
{
onUnload.unload();
}
request.send(null);
var onUnload = {
unload: function()
{
// Make sure to abort the request if the extension is disabled
try
{
request.abort();
}
catch (e) {}
}
};
require("unload").ensure(onUnload);
Механизм, обеспечивающий прерывание запроса при внезапном отключении вашего расширения, довольно неудобен, поэтому основная причина существования модуля request
заключается не в том, чтобы просто дать вам XMLHttpRequest
. Обратите внимание, что важно вызвать onUnload.unload()
после завершения запроса, в противном случае SDK надстройки сохранит его в списке методов, вызываемых при выгрузке (утечка памяти). См. документацию unload
модуля .