Anforderungen: Alle XMLHttpRequest-Anfragen abfangen und wenn die Backend-Schnittstelle den ungültigen Anmelde-Status zurückgibt, direkt zur Anmeldeoberfläche springen und diese nicht weitergeben. Es kann auch verwendet werden, um die Hinzufügung einheitlicher Signaturen, automatische Protokollauflösung, Interface-Call-Statistiken usw. anzufordern.
Rezension:
Obwohl jQuery Ajax-Anfragen abfangen kann, ist es darauf beschränkt, dass der Aufrufer Ajax-Methoden in jQuery verwendet und Anfragen nicht mit nativem XMLHttpRequest abfangen kann.Da die Ajax-Anfrage in jQuery ebenfalls eine Kapselung von XMLHttpRequest ist, können wir tatsächlich XMLHttpRequest abfangen。
ajax-hook ist eine leichte Bibliothek zum Abfangen von Browser-XMLHttpRequest-Objekten, die verwendet werden kann, um Anfragen, Antworten und Fehler vorzuverarbeiten, bevor das XMLHttpRequest-Objekt eine Anfrage initiiert, nach Erhalt des Antwortinhalts und wenn ein Fehler auftritt. Ajax-Hook ist hochkompatibel und kann auf jedem Browser ausgeführt werden, der ES5 unterstützt, da es nicht auf ES6-Funktionen angewiesen ist.
Prinzip: ajax-hook passt die Methoden und Eigenschaften in XMLHttpRequest an, um das globale XMLHttpRequest-Objekt zu überschreiben. Eine Proxy-Schicht wird für das XMLHttpRequest-Objekt gewickelt.
Open-Source-Adresse:Der Hyperlink-Login ist sichtbar.
CDN-Adresse:Der Hyperlink-Login ist sichtbar.
Proxy vs. Hook
Sowohl proxy() als auch hook() können verwendet werden, um globale XMLHttpRequests abzufangen. Ihre Unterschiede sind:hook() hat eine feine Interzeptionsgranularität, spezifisch für eine bestimmte Methode, ein Attribut oder einen Callback des XMLHttpRequest-Objekts sein kann, ist jedoch umständlicher zu verwenden, und oft muss nicht nur die Geschäftslogik in verschiedenen Rückrufen verteilt werden, sondern ist auch fehleranfällig. währendproxy() besitzt einen hohen Grad an Abstraktion, und der Anfragekontext wird erstellt (die Konfiguration der Anfrageinformationen kann direkt in jedem Callback abgerufen werden), was einfacher und effizienter zu bedienen ist.
Meistens haben wirEs wird empfohlen, die Proxy()-Methode zu verwenden, es sei denn, sie entspricht nicht Ihren Bedürfnissen.。
Versuchen Sie, jQuery Ajax Request Interception und Proxy Interception in ajax-Hook hinzuzufügen, der Code ist wie folgt:
Versuche, eine Get-Anfrage mit jQuery zu senden, dann kannst du sie sehenBeide können abgefangen werden, wie in der untenstehenden Abbildung dargestellt:
Senden Sie eine Anfrage mit native XMLHttpRequest, DiscoverNur Ajax-Hook kann abfangen, wie in der untenstehenden Abbildung dargestellt:
Weitere Verwendungen des Ajax-Hook-Proxys:
Beispiel:Der Hyperlink-Login ist sichtbar.
(Ende)
|