>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Перехват XMLHTTPRequest запросов и ответов на них. http://forum.mozilla-russia.org/viewtopic.php?id=53139 |
Орец > 03-01-2012 01:31:59 |
Планирую расширение для сайта использующего XMLHTTPRequest, ранее с ним работать не приходилось и возникли трудности. По задумке - нужно отследить запрос на сервер, если он из тех что требуется то перехватить и ответ на него, но покачто не подобрал даже какие события надо слушать, нет ли статьи на русском где это описано? В расширение Firebug найти ответа не вышло, как-то там много всего. |
hydrolizer > 03-01-2012 07:42:06 |
Орец |
bidlocoder > 26-01-2012 03:49:19 |
а вот маленький пример Выделить код Код:var fake_cookie; var listener = { observe:function (aSubject, aTopic, aData) { // Make sure it is our connection first. if (aSubject == ((scc.online) ? scc.req2.channel : scc.req.channel)) { var httpChannel = aSubject.QueryInterface(Components.interfaces.nsIHttpChannel); if (aTopic == "http-on-modify-request") { if (httpChannel.getRequestHeader('Cookie').indexOf('xxxxxxxxx') != -1) { httpChannel.setRequestHeader('Cookie', fake_cookie, false); } ; } else if (aTopic == "http-on-examine-response") { // ... } } }, QueryInterface:function (aIID) { if (aIID.equals(Components.interfaces.nsISupports) || aIID.equals(Components.interfaces.nsIObserver)) return this; throw Components.results.NS_NOINTERFACE; } }; // get the observer service and register for the two coookie topics. //function add_obs(){ var observerService = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService) observerService.addObserver(listener, "http-on-modify-request", false); |