Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 4352|Antwoord: 2

[JavaScript] De ajax-hook voor webontwikkeling onderschept alle XMLHttpRequest-verzoeken

[Link kopiëren]
Geplaatst op 22-06-2023 10:29:45 | | | |
Vereisten: Onderschep alle XMLHttpRequest-verzoeken, en wanneer de backend-interface de login-ongeldige statuscode teruggeeft, spring direct naar de logininterface en geef deze niet meer door. Het kan ook worden gebruikt om de toevoeging van unified signatures, automatische protocolresolutie, interface-aanroepstatistieken, enzovoort aan te vragen.

Recensie:

jQuery onderschept de resultaten die door Ajax worden teruggegeven
https://www.itsvse.com/thread-9570-1-1.html
Hoewel jQuery Ajax-verzoeken kan onderscheppen, is het beperkt tot de aanroeper die ajax-methoden in jQuery gebruikt en kan het geen verzoeken onderscheppen met native XMLHttpRequest.Omdat het ajax-verzoek in jQuery ook een encapsulatie is van XMLHttpRequest, kunnen we daadwerkelijk XMLHttpRequest onderscheppen

ajax-hook is een lichtgewicht bibliotheek voor het onderscheppen van XMLHttpRequest-objecten in de browser, die kan worden gebruikt om verzoeken, antwoorden en fouten vooraf te verwerken voordat het XMLHttpRequest-object een verzoek start, na ontvangst van de inhoud van de antwoord, en wanneer er een fout optreedt. Ajax-hook is zeer compatibel en kan draaien op elke browser die ES5 ondersteunt, omdat het niet afhankelijk is van ES6-functies.

Principe: ajax-hook past de methoden en eigenschappen in XMLHttpRequest aan om het globale XMLHttpRequest-object te overschrijven. Een proxylaag wordt gewrapt voor het XMLHttpRequest-object.

Open source adres:De hyperlink-login is zichtbaar.

CDN-adres:De hyperlink-login is zichtbaar.

Proxy versus haak

Zowel proxy() als hook() kunnen worden gebruikt om globale XMLHttpRequests te onderscheppen. Hun verschillen zijn:hook() heeft een fijne interceptiegranulariteit, kan specifiek zijn voor een bepaalde methode, attribuut of callback van het XMLHttpRequest-object, maar het is lastiger te gebruiken en vaak moet niet alleen de bedrijfslogica verspreid worden over verschillende callbacks, maar ook gevoelig voor fouten. terwijlproxy() heeft een hoge mate van abstractie, en de verzoekcontext wordt opgebouwd (de configuratie van de verzoekinformatie-informatie kan direct worden verkregen bij elke callback), wat eenvoudiger en efficiënter in gebruik is.

Meestal zijn weHet wordt aanbevolen om de proxy()-methode te gebruiken, tenzij deze niet aan je behoeften voldoet

Probeer jQuery ajax request interception en proxy interception toe te voegen aan ajax-hook, de code is als volgt:

Probeer een get request te sturen met jQuery en je kunt het zienBeide kunnen worden onderschept, zoals getoond in de onderstaande figuur:



Stuur een verzoek met native XMLHttpRequest, ontdekAlleen ajax-haak kan onderscheppen, zoals getoond in de onderstaande figuur:



Meer toepassingen van ajax-hook proxy:

Voorbeeld:De hyperlink-login is zichtbaar.

(Einde)





Vorig:EF SQL-instructies genereren automatisch IS NULL of IS NIET NULL
Volgend:.NET/C# Eenvoudige analyse van de broncode van de HttpClient
 Huisbaas| Geplaatst op 22-06-2023 10:32:52 |
Intercept fetch() API-verzoeken en antwoorden:https://stackoverflow.com/questi ... onses-in-javascript
 Huisbaas| Geplaatst op 18-04-2024 08:39:18 |
Intercept HTTP-antwoord 401 Ongeautoriseerde jump logincode:

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com