Požiadavky: Zachytiť všetky požiadavky XMLHttpRequest a keď backendové rozhranie vráti neplatný stavový kód na prihlásenie, okamžite prejsť na prihlasovacie rozhranie a už ho ďalej neodosielať. Môže sa tiež použiť na požiadavku na pridanie zjednotených podpisov, automatické riešenie protokolov, štatistiky volaní rozhrania a podobne.
Revízia:
Hoci jQuery dokáže zachytávať požiadavky Ajax, je obmedzený na volajúceho používajúceho metódy ajax v jQuery a nemôže zachytávať požiadavky pomocou natívneho XMLHttpRequest.Keďže ajax požiadavka v jQuery je tiež enkapsuláciou XMLHttpRequest, môžeme XMLHttpRequest skutočne zachytiť。
ajax-hook je ľahká knižnica na zachytávanie objektov XMLHttpRequest v prehliadači, ktorá sa dá použiť na predspracovanie požiadaviek, odpovedí a chýb predtým, než objekt XMLHttpRequest iniciuje požiadavku, po prijatí obsahu odpovede a keď nastane chyba. Ajax-hook je vysoko kompatibilný a môže bežať v akomkoľvek prehliadači, ktorý podporuje ES5, keďže nevyužíva funkcie ES6.
Princíp: ajax-hook prispôsobuje metódy a vlastnosti v XMLHttpRequest tak, aby prepísal globálny objekt XMLHttpRequest. Pre objekt XMLHttpRequest je zabalená vrstva proxy.
Open Source adresa:Prihlásenie na hypertextový odkaz je viditeľné.
CDN adresa:Prihlásenie na hypertextový odkaz je viditeľné.
Proxy vs. hák
Na zachytávanie globálnych XMLHttpRequestov je možné použiť proxy() aj hook(). Ich rozdiely sú:hook() má jemnú granularitu interceptionu, môže byť špecifická pre určitú metódu, atribút alebo spätné volanie objektu XMLHttpRequest, ale je to zložitejšie na použitie a často je potrebné nielen roztrúsiť obchodnú logiku v rôznych spätných volaniach, ale je aj náchylná na chyby. Keďžeproxy() má vysoký stupeň abstrakcie, a kontext požiadaviek je vytvorený (konfigurácia informácií o požiadavke je dostupná priamo v každom spätnom volaní), čo je jednoduchšie a efektívnejšie na použitie.
Väčšinou smeOdporúča sa použiť metódu proxy(), pokiaľ nevyhovuje vašim potrebám。
Skúste pridať zachytenie požiadaviek na zachytenie a zachytenie proxy v ajax-hook, kód je nasledovný:
Skúste poslať požiadavku na získanie cez jQuery a uvidíte toObe môžu byť zachytené, ako je znázornené na obrázku nižšie:
Oslať požiadavku pomocou natívneho XMLHttpRequest, discoverIba ajax-hook môže zachytiť, ako je znázornené na obrázku nižšie:
Ďalšie využitia ajax-hook proxy:
Príklad:Prihlásenie na hypertextový odkaz je viditeľné.
(Koniec)
|