Exigences : Intercepter toutes les requêtes XMLHttpRequest, et lorsque l’interface backend retourne le code de statut invalide de la connexion, passer directement à l’interface de connexion et ne plus le transmettre. Il peut également être utilisé pour demander l’ajout de signatures unifiées, la résolution automatique de protocoles, les statistiques d’appels d’interface, etc.
Révision:
Bien que jQuery puisse intercepter les requêtes Ajax, il est limité à l’appelant utilisant les méthodes ajax dans jQuery et ne peut pas intercepter les requêtes via XMLHttpRequest natif.Puisque la requête ajax dans jQuery est aussi une encapsulation de XMLHttpRequest, nous pouvons en fait intercepter XMLHttpRequest。
ajax-hook est une bibliothèque légère pour intercepter les objets XMLHttpRequest du navigateur, qui peut être utilisée pour prétraiter les requêtes, réponses et erreurs avant que l’objet XMLHttpRequest n’initie une requête, après avoir reçu le contenu de la réponse, et lorsqu’une erreur survient. Ajax-hook est hautement compatible et peut fonctionner sur n’importe quel navigateur supportant ES5, car il ne dépend pas des fonctionnalités d’ES6.
Principe : ajax-hook personnalise les méthodes et propriétés de XMLHttpRequest pour écraser l’objet XMLHttpRequest global. Une couche de proxy est enveloppée pour l’objet XMLHttpRequest.
Adresse Open Source :La connexion hyperlientérée est visible.
Adresse CDN :La connexion hyperlientérée est visible.
Proxy vs. Hook
Proxy () et hook() peuvent être utilisés pour intercepter les requêtes XMLHttp globales. Leurs différences sont :Hook() possède une granularité d’interception fine, peut être spécifique à une méthode, un attribut ou un rappel de l’objet XMLHttpRequest, mais il est plus difficile à utiliser, et souvent, non seulement la logique métier doit être dispersée dans divers callbacks, mais aussi sujette aux erreurs. tandis queProxy () présente un degré élevé d’abstraction, et le contexte de requête est construit (la configuration des informations de requête peut être obtenue directement dans chaque rappel), ce qui est plus simple et plus efficace à utiliser.
La plupart du temps, nousIl est recommandé d’utiliser la méthode proxy() sauf si elle ne répond pas à vos besoins。
Essayez d’ajouter jQuery l’interception de requête ajax et l’interception proxy dans ajax-hook, le code est le suivant :
Essayez d’envoyer une demande get via jQuery et vous pourrez la voirLes deux peuvent être interceptés, comme montré dans la figure ci-dessous :
Envoyez une requête en utilisant XML natif XMLHttpRequest, découvrezSeul l’ajax-crochet peut intercepter, comme montré dans la figure ci-dessous :
Autres utilisations du proxy ajax-hook :
Exemple:La connexion hyperlientérée est visible.
(Fin)
|