【发布时间】:2014-11-12 20:55:22
【问题描述】:
当“http-on-modify-request”在我的 firefox 插件中触发时,我正在尝试调用 API。
所以现在,这是我的代码:
Request({
url: "https://myAPI.com/?q="+query,
onComplete: function (response) {
var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
httpChannel.redirectTo(ioService.newURI(response.json.Redirect, null, null));
}
}).get();
不幸的是,由于它是异步的,触发观察者的第一个查询已经完成,所以它无法重定向。
还有其他方法可以做到吗?
【问题讨论】:
-
为什么不中止重定向然后进行重定向?所以就像
httpChannel.cancel(Cr.NS_BINDING_ABORTED);在这里看到:stackoverflow.com/questions/25327282/… -
我不能这样做,因为httpChannel会被取消,所以我以后不能重定向它......
-
你是对的。所以中止频道,然后用新频道替换它。那应该行得通。但实际上:我认为
httpChannel.redirectTo会中止它所做的一切,然后将其发送到其他地方? -
谢谢Noitidart,我试过that,但它也不起作用
-
不要只为 channel.redirect 做 newChannel 喜欢这个话题:stackoverflow.com/questions/25327282/…
标签: ajax sdk firefox-addon request firefox-addon-sdk