我只是想根據發送的某個 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粉2768766632024-04-04 12:24:48
您需要新增 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);