JS - Intercepter un XMLHttpRequest et déclencher une fonction
P粉314915922
P粉314915922 2024-04-03 15:33:25
0
1
553

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粉314915922
P粉314915922

répondre à tous(1)
P粉276876663

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);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal