Отменить HTTP-запрос GET от расширения Firefox - PullRequest
7 голосов
/ 25 января 2011

У меня есть расширение firefox, которое прослушивает «http-on-modify-request» и проверяет все запросы GET, поступающие от firefox. Я хотел бы иметь возможность отменить запрос (скажем, вернуть код ошибки на страницу) или изменить URI запроса, но, похоже, не могу этого сделать. объект nsiHttpChannel просто не позволяет этого - например,

delete httpChannel;

или сброс на пустой запрос

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

не работает (и вы не можете изменить URI).

Так как же вы перехватываете и изменяете http GET-запросы в расширении Firefox.

1 Ответ

9 голосов
/ 26 января 2011

delete httpChannel; просто удаляет переменную, вроде как сказать httpChannel = undefined;. Сам запрос неизменен. Точно так же ваша вторая идея просто устанавливает переменную так, чтобы она указывала на новый экземпляр nsIHttpChannel, но старый запрос все еще остается неизменным.

Чтобы изменить запрос, используйте его свойства и методы. Смотрите nsIHttpChannel или nsIChannel или nsIRequest . Как вы говорите, вы не можете изменить URI, поэтому вы можете отменить его (см. Ниже) и заменить его новым. Я не уверен, как именно это сделать, но я думаю, что на одной из этих трех страниц есть ответ.

Чтобы отменить его, используйте nsIRequest.cancel ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...