JS - 攔截某個 XMLHttpRequest 並觸發一個函數
P粉314915922
P粉314915922 2024-04-03 15:33:25
0
1
489

我只是想根據發送的某個 XMLHttpRequest 來觸發一個函數。我不需要更改或添加任何內容到請求中 - 只需觸發我的程式碼庫中的另一個函數即可。該請求是由嵌入我的 JS 程式碼的網站發送的。我無法控制整體網站。我已經讓攔截器適用於所有調用,但我對它了解不夠,無法根據以下要求縮小範圍。

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

不確定我是否應該使用 send 和 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

全部回覆(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);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板