Krav: Fånga upp alla XMLHttpRequest-förfrågningar, och när backend-gränssnittet returnerar inloggningsstatuskoden, hoppa direkt till inloggningsgränssnittet och skicka det inte längre. Den kan också användas för att begära tillägg av enhetliga signaturer, automatisk protokollupplösning, gränssnittsanropsstatistik med mera.
Recension:
Även om jQuery kan avlyssna Ajax-förfrågningar är det begränsat till att anroparen använder ajax-metoder i jQuery och kan inte avlyssna förfrågningar med native XMLHttpRequest.Eftersom ajax-förfrågan i jQuery också är en inkapsling av XMLHttpRequest, kan vi faktiskt avlyssna XMLHttpRequest。
ajax-hook är ett lättviktigt bibliotek för att avlyssna webbläsarens XMLHttpRequest-objekt, vilket kan användas för att förbehandla förfrågningar, svar och fel innan XMLHttpRequest-objektet initierar en förfrågan, efter att ha mottagit svarets innehåll och när ett fel uppstår. Ajax-hook är mycket kompatibel och kan köras i vilken webbläsare som helst som stödjer ES5, eftersom den inte är beroende av ES6-funktioner.
Princip: ajax-hook anpassar metoderna och egenskaperna i XMLHttpRequest för att åsidosätta det globala XMLHttpRequest-objektet. Ett lager av proxy wrappas för XMLHttpRequest-objektet.
Öppen källkodsadress:Inloggningen med hyperlänken är synlig.
CDN-adress:Inloggningen med hyperlänken är synlig.
proxy vs. hook
Både proxy() och hook() kan användas för att avlyssna globala XMLHttpRequests. Deras skillnader är:hook() har en fin interceptionsgranularitet, kan vara specifik för en viss metod, attribut eller callback av XMLHttpRequest-objektet, men det är mer besvärligt att använda, och ofta behöver inte bara affärslogiken spridas i olika callbacks, utan också felbenägen. medanproxy() har en hög grad av abstraktion, och förfrågningskontexten byggs (konfigurationen för förfrågningsinformation kan erhållas direkt i varje callback), vilket är enklare och mer effektivt att använda.
För det mesta är det viDet rekommenderas att använda proxy()-metoden om den inte uppfyller dina behov。
Försök lägga till jQuery ajax request interception och proxy interception i ajax-hook, koden är följande:
Försök skicka en get-request med jQuery så kan du se denBåda kan avlyssnas, som visas i figuren nedan:
Skicka en förfrågan med native XMLHttpRequest, DiscoverEndast ajax-hook kan avlyssna, som visas i figuren nedan:
Fler användningar av ajax-hook-proxy:
Exempel:Inloggningen med hyperlänken är synlig.
(Slut)
|