Maison >interface Web >js tutoriel >Comment intercepter toutes les requêtes AJAX sur une page Web ?

Comment intercepter toutes les requêtes AJAX sur une page Web ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 14:21:02782parcourir

How Can You Intercept All AJAX Requests on a Web Page?

Accéder à toutes les requêtes AJAX sur une page

Modifier les requêtes AJAX pour effectuer des actions supplémentaires peut être crucial pour le débogage, l'analyse ou à d'autres fins . Cependant, avec plusieurs scripts tiers utilisant différentes bibliothèques AJAX sur une page, il peut sembler difficile de tous les intercepter.

Intercepter les requêtes AJAX

Pour surveiller chaque AJAX demande, vous pouvez utiliser l'objet XMLHttpRequest. Voici une solution robuste qui fonctionne même avec plusieurs bibliothèques :

(function() {
    var origOpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function() {
        console.log('request started!');
        this.addEventListener('load', function() {
            console.log('request completed!');
            console.log(this.readyState); //will always be 4 (ajax is completed successfully)
            console.log(this.responseText); //whatever the response was
        });
        origOpen.apply(this, arguments);
    };
})();

Ce code remplace la méthode open de XMLHttpRequest pour enregistrer un écouteur d'événement pour l'événement de chargement. Lorsqu'une requête est lancée, elle enregistre l'heure de début. Une fois la requête terminée, elle enregistre l'heure de fin, l'état de préparation et le texte de la réponse.

Remarque : Gardez à l'esprit que cette méthode ne fonctionne pas pour les requêtes de récupération natives. Cependant, vous pouvez adopter une approche de proxy similaire pour la récupération si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn