Maison  >  Questions et réponses  >  le corps du texte

JS - Intercepter un XMLHttpRequest et déclencher une fonction

Je veux juste déclencher une fonction basée sur l'envoi d'un certain XMLHttpRequest. Je n'ai pas besoin de modifier ou d'ajouter quoi que ce soit à la demande - il suffit de déclencher une autre fonction dans ma base de code. La requête est envoyée par le site internet qui embarque mon code JS. Je n'ai aucun contrôle sur l'ensemble du site Web. J'ai l'intercepteur qui fonctionne pour tous les appels, mais je n'en sais pas suffisamment pour le affiner en fonction des exigences suivantes.

Required - If the Request URL contains get-users
Required - If the Status Code: 200 
Optional - If the Request Method: GET

Je ne sais pas si je dois utiliser send et send.call.

(function (send) {
        XMLHttpRequest.prototype.send = function (data) {
          console.log('Request', this);
          // If call url contains "get-users" && status code = 200 && possibly if the request method = get
          // {
          //   MyFunction()
          // }
          send.call(this, data);
        };
      })(XMLHttpRequest.prototype.send);

P粉314915922P粉314915922179 Il y a quelques jours400

répondre à tous(1)je répondrai

  • P粉276876663

    P粉2768766632024-04-04 12:24:48

    Vous devez ajouter une condition if pour vérifier si l'URL de la demande contient "get-users" et que le code d'état est 200.

    Aimez le code ci-dessous :-

    (function (send) {
      XMLHttpRequest.prototype.send = function (data) {
        console.log('Request', this);
    
        this.onreadystatechange = function () {
          if (this.readyState === 4 && this.status === 200 && this.responseURL.includes('get-users')) {
            MyFunction();
          }
        };
    
        send.call(this, data);
      };
    })(XMLHttpRequest.prototype.send);

    répondre
    0
  • Annulerrépondre