Požadavky: Zachytit všechny požadavky XMLHttpRequest a když backendové rozhraní vrátí neplatný kód pro přihlašování, přejít přímo do přihlašovacího rozhraní a již jej nepředávat. Lze jej také použít k požadavku na přidání sjednocených podpisů, automatického řešení protokolů, statistik volání rozhraní atd.
Přezkoumání:
Zatímco jQuery může zachytávat požadavky Ajaxu, je omezen na volajícího používajícího metody ajax v jQuery a nemůže zachytávat požadavky pomocí nativního XMLHttpRequest.Protože ajax požadavek v jQuery je také zapouzdřením XMLHttpRequest, můžeme XMLHttpRequest skutečně zachytit。
ajax-hook je lehká knihovna pro zachycení objektů XMLHttpRequest v prohlížeči, která může být použita k předzpracování požadavků, odpovědí a chyb před zahájením požadavku objektem XMLHttpRequest, po obdržení obsahu odpovědi a při výskytu chyby. Ajax-hook je vysoce kompatibilní a může běžet v jakémkoli prohlížeči, který podporuje ES5, protože nespoléhá na funkce ES6.
Princip: ajax-hook přizpůsobuje metody a vlastnosti v XMLHttpRequest tak, aby přepsal globální objekt XMLHttpRequest. Pro objekt XMLHttpRequest je zabalena vrstva proxy.
Open source adresa:Přihlášení k hypertextovému odkazu je viditelné.
Adresa CDN:Přihlášení k hypertextovému odkazu je viditelné.
Proxy vs. Hook
K zachycení globálních XMLHttpRequestů lze použít jak proxy(), tak hook(). Jejich rozdíly jsou:hook() má jemnou granularitu interceptionu, může být specifický pro určitou metodu, atribut nebo zpětné volání objektu XMLHttpRequest, ale je obtížnější ho používat a často je nejen potřeba obchodní logika rozptýlit v různých callbackech, ale je také náchylná k chybám. kdežtoproxy() má vysokou míru abstrakce, a kontext požadavku je vytvořen (konfigurace informací o požadavcích lze získat přímo v každém zpětném volání), což je jednodušší a efektivnější na použití.
Většinou jsmeDoporučuje se použít metodu proxy(), pokud vám nevyhovuje。
Zkuste přidat zachycení požadavků jQuery ajax a zachycení proxy v ajax-hook, kód je následující:
Zkuste poslat požadavek na získání pomocí jQuery a uvidíte toObě lze zachytit, jak je znázorněno na obrázku níže:
Odeslat požadavek pomocí nativního XMLHttpRequest, objevitPouze ajax-hook může zachytit, jak je znázorněno na obrázku níže:
Další využití proxy s ajax-hookem:
Příklad:Přihlášení k hypertextovému odkazu je viditelné.
(Konec)
|