Zahteve: Prestreči vse zahteve XMLHttpRequest in ko zadnji vmesnik vrne neveljavno statusno kodo za prijavo, skoči neposredno na prijavni vmesnik in je ne posreduj več. Uporablja se lahko tudi za zahtevo po dodajanju enotnih podpisov, samodejnem reševanju protokolov, statistiki klicev vmesnikov itd.
Pregled:
Čeprav jQuery lahko prestreže Ajax zahteve, je omejen na klicatelja, ki uporablja ajax metode v jQuery, in ne more prestrezati zahtev z nativnim XMLHttpRequest.Ker je ajax zahteva v jQuery tudi enkapsulacija XMLHttpRequest, lahko dejansko prestrežemo XMLHttpRequest。
ajax-hook je lahka knjižnica za prestrezanje XMLHttpRequest objektov brskalnika, ki se lahko uporablja za predobdelavo zahtev, odgovorov in napak, preden objekt XMLHttpRequest sproži zahtevo, po prejemu vsebine odgovora in ko pride do napake. Ajax-hook je zelo združljiv in lahko deluje na katerem koli brskalniku, ki podpira ES5, saj ne temelji na funkcijah ES6.
Princip: ajax-hook prilagaja metode in lastnosti v XMLHttpRequest za preglasitev globalnega objekta XMLHttpRequest. Plast proxyja je ovita za objekt XMLHttpRequest.
Odprtokodni naslov:Prijava do hiperpovezave je vidna.
CDN naslov:Prijava do hiperpovezave je vidna.
Proxy proti kljuki
Tako proxy() kot hook() se lahko uporabljata za prestrezanje globalnih XMLHttpRequests. Njihove razlike so:hook() ima fino granularnost prestrezanja, je lahko specifičen za določeno metodo, atribut ali povratni klic objekta XMLHttpRequest, vendar je uporaba bolj zahtevna, saj je pogosto ne le poslovna logika razpršena v različnih povratnih klicih, ampak je tudi nagnjena k napakam. Kerproxy() ima visoko stopnjo abstrakcije, in kontekst zahteva je zgrajen (konfiguracija informacij o zahtevku je dostopna neposredno v vsakem povratnem klicu), kar je enostavnejše in učinkovitejše za uporabo.
Večinoma smoPriporočljivo je uporabiti metodo proxy(), razen če ne ustreza vašim potrebam。
Poskusite dodati prestrezanje zahtev jQuery ajax in prestrezanje proxy v ajax-hook, koda je naslednja:
Poskusi poslati zahtevo za pridobitev preko jQuery in jo boš videlOba je mogoče prestreči, kot je prikazano na spodnji sliki:
Pošlji zahtevo z uporabo nativnega XMLHttpRequest, discoverSamo ajax-hook lahko prestreže, kot je prikazano na spodnji sliki:
Več uporab ajax-hook proxyja:
Primer:Prijava do hiperpovezave je vidna.
(Konec)
|