gpt4 book ai didi

javascript - Firefox SDK 多次执行请求

转载 作者:行者123 更新时间:2023-11-30 05:43:40 24 4
gpt4 key购买 nike

我正在用我的 firefox sdk 做一个服务器请求,它回复一个 XML 文件。

我正在为两个特殊值解析 XML 文件并将它们放入一个全局数组中(在我的 onComplete 函数中)。

我的问题是数组不保存元素 01 中的值,我不知道为什么!

我的第二个问题是我想在我的插件中调用当前选项卡 url 的请求(这意味着不止一次)。我知道请求模块说“每个请求对象都设计为使用一次”,但是否可以多次调用它?

我总是得到这个错误:

Error: This request object has been used already. You must create a new one to make a new request.

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

谢谢

最佳答案

只需将您的请求调用包装在一个可重用的函数中。 Request 是一个构造函数,因此您可以实例化多个请求。但是每个请求只能请求一个URL。

function request (url) {
Request({
url: url
onComplete: parseResponse,
}).get();
}

对于 XML 问题,仅控制台记录各个节点,可能不是您在某处所期望的。

关于javascript - Firefox SDK 多次执行请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19318966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com