Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 4352|Odpověď: 2

[JavaScript] Ajax-hook pro webový vývoj zachytává všechny požadavky XMLHttpRequest

[Kopírovat odkaz]
Zveřejněno 22.06.2023 10:29:45 | | | |
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í:

jQuery zachytává výsledky vrácené Ajaxem
https://www.itsvse.com/thread-9570-1-1.html
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)





Předchozí:EF SQL příkazy automaticky generují IS NULL nebo IS NOT NULL
Další:.NET/C# Zdrojový kód HttpClient jednoduchá analýza
 Pronajímatel| Zveřejněno 22.06.2023 10:32:52 |
API požadavky a odpovědi Intercept fetch():https://stackoverflow.com/questi ... onses-in-javascript
 Pronajímatel| Zveřejněno 18.04.2024 8:39:18 |
Zachytit HTTP odpověď 401 Neoprávněný přihlašovací kód pro skok:

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com