【问题标题】:Cancel an HTTP GET request from Firefox Extension取消来自 Firefox 扩展的 HTTP GET 请求
【发布时间】:2011-01-26 12:39:57
【问题描述】:

我有一个 firefox 扩展程序,它监听“http-on-modify-request”并检查来自 firefox 的所有 GET 请求。我希望能够取消请求(比如向页面返回失败代码)或修改请求的 URI,但似乎无法做到。 nsiHttpChannel 对象只是不允许它 - 例如

delete httpChannel;

或重置为空请求

httpChannel = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);

不工作(而且你不能修改 URI)。

那么,您如何在 firefox 扩展中同时拦截修改 http GET 请求。

【问题讨论】:

    标签: http firefox firefox-addon


    【解决方案1】:

    delete httpChannel; 只是删除变量,有点像httpChannel = undefined;。请求本身没有改变。同样,您的第二个想法只是将变量设置为指向新的 nsIHttpChannel 实例,但旧的请求仍然没有改变。

    要修改请求,请使用其属性和方法。请参阅 nsIHttpChannelnsIChannelnsIRequest。正如您所说,您无法修改 URI,因此您可能想要取消它(见下文)并将其替换为新的。我不确定该怎么做,但我想这三页中的一页有答案。

    要取消它,请使用nsIRequest.cancel()

    【讨论】:

      最近更新 更多