JS – Eine XMLHttpRequest abfangen und eine Funktion auslösen
P粉314915922
P粉314915922 2024-04-03 15:33:25
0
1
491

Ich möchte nur eine Funktion basierend auf dem Senden einer bestimmten XMLHttpRequest auslösen. Ich muss an der Anfrage nichts ändern oder etwas hinzufügen – ich löse einfach eine andere Funktion in meiner Codebasis aus. Die Anfrage wird von der Website gesendet, die meinen JS-Code einbettet. Ich habe keine Kontrolle über die gesamte Website. Ich habe den Interceptor so eingestellt, dass er für alle Anrufe funktioniert, aber ich weiß nicht genug darüber, um ihn anhand der folgenden Anforderungen einzugrenzen.

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

Ich bin mir nicht sicher, ob ich send und send.call verwenden soll.

(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

Antworte allen(1)
P粉276876663

您需要添加 if 条件来检查请求 URL 是否包含“get-users”且状态码是否为 200。

像下面的代码一样:-

(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);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage