Ajax http on modify请求触发时的同步请求

Ajax http on modify请求触发时的同步请求,ajax,sdk,firefox-addon,request,firefox-addon-sdk,Ajax,Sdk,Firefox Addon,Request,Firefox Addon Sdk,我试图在我的firefox插件中触发http on modify请求时调用API 现在,我的代码如下: Request({ url: "https://myAPI.com/?q="+query, onComplete: function (response) { var ioService = Cc["@mozilla.org/network/io-service;1"].getSer

我试图在我的firefox插件中触发http on modify请求时调用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();
不幸的是,由于它是异步的,触发观察器的第一个查询已经完成,因此无法重定向


还有其他方法吗?

您应该定期从myAPI.com获取重定向列表,然后在本地缓存该列表,并在http on modify请求触发时使用该列表。

为什么不中止重定向,然后执行重定向?如httpChannel.cancelCr.NS\u绑定\u中止;看这里:我不能这样做,因为httpChannel将被取消,所以我不能稍后重定向它…你是对的。因此,中止该通道,然后用新通道替换它。这应该行得通。但事实上:我认为httpChannel.redirectTo会中止它所做的任何事情,然后将其发送到其他地方?谢谢你,Noitidart,我尝试过,但它不起作用。在本主题中,不要只对channel.redirectTo执行新频道: