Отслеживание завершения определенного XMLHTTPRequest - PullRequest
0 голосов
/ 26 мая 2018

Можно ли определить, когда конкретный запрос XMLHttpRequest завершился с использованием чистого JavaScript ?.Скажем, я знаю URL ресурса, который будет запрошен с помощью XMLHttpRequest, например: http://www.mywebsite.com/test.json, могу ли я отследить завершение этого запроса с помощью JavaScript?

Это код, который у меня пока есть:

var oldXHR = window.XMLHttpRequest;

function newXHR() {
    var realXHR = new oldXHR();
    realXHR.addEventListener("readystatechange", function() {
        if(realXHR.readyState==4 && realXHR.status==200){
            console.log('request was made');
        }
    }, false);
    return realXHR;
 }
 window.XMLHttpRequest = newXHR;

однако, он отслеживает каждый HTTP-запрос, сделанный на сайте, и не очень полезен.Я хочу точно определить точный запрос и определить, когда он был выполнен.Как это можно сделать?

1 Ответ

0 голосов
/ 26 мая 2018

Вам нужно "перехватить" (переопределить, практически) метод open() вместо конструктора.

XMLHttpRequest.prototype.open = (function(realOpen) {
    return function(method, url) {
        if (url === 'http://www.mywebsite.com/test.json') {
            this.addEventListener('readystatechange', function() {
                // ...do what you have to do
            });
        }
        realOpen.apply(this, arguments);
    };
})(XMLHttpRequest.prototype.open);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...