我正在用我的firefox sdk做一个服务器请求,它回复了一个XML文件。
我正在解析XML文件中的两个特殊值,并将它们放入一个全局数组(在我的onComplete
函数中)。
我的问题是数组没有保存元素0
和1
中的值,我不知道为什么!
我的第二个问题是我想在我的插件中为当前标签url
调用一个请求(这意味着不止一次)。我知道请求模块说“每个请求对象都被设计为使用一次”但是可以多次调用它吗?
我总是收到这个错误:
错误:此请求对象已被使用。您必须创建一个新请求才能发出新请求。
var Request = require("request").Request;
var {Cc, Ci} = require("chrome");
var parser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser);
var setURL = "example.org";
var exampleArray = new Array();
function parseResponse(response) {
var xml = parser.parseFromString(response.text, "application/xml");
exampleArray[0] = xml.getElementsByTagName("example")[0].getAttribute("example"); // integer value
exampleArray[1] = xml.getElementsByTagName("example2")[0].getAttribute("example2"); //integer value
}
var exampleRequest = Request({
url: "http://www.example.com",
onComplete: parseResponse,
})
exampleRequest.get();
console.log("exampleArray" + exampleArray.length); //always 0
由于
答案 0 :(得分:1)
将请求调用包装在可重用的函数中。 Request
是构造函数,因此您可以实例化多个请求。但每个请求只能请求一个URL。
function request (url) {
Request({
url: url
onComplete: parseResponse,
}).get();
}
对于XML问题,只需控制台记录各个节点,可能不是您期望的地方。