#javascript
#javascript
Вопрос:
Когда я пытаюсь создать HTTP-регистратор для веб-сайта, мне нужно перезаписать окно.Функция XMLHttpRequest.prototype.open для получения всех HTTP-запросов и их регистрации. Однако, когда я пытаюсь перезаписать функцию в функции window.onload, код не работает.
Функция, включающая window.onload:
window.onload = function() {
let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(
method,
url,
async,
user,
password
) {
console.log(this);
oldXHROpen.apply(this, arguments);
this.addEventListener("load", function() {
let json = JSON.parse(this.responseText);
console.log(json);
});
};
};
Это работает не так, как я хочу, потому что он не регистрирует сделанные HTTP-запросы. Однако, когда я публикую следующий код в терминале, он работает:
let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(
method,
url,
async,
user,
password
) {
console.log(this);
oldXHROpen.apply(this, arguments);
this.addEventListener("load", function() {
let json = JSON.parse(this.responseText);
console.log(json);
});
};
Я ожидаю, что первая функция window.onload перезапишет окно.Метод XMLHttpRequest.prototype.open и что он регистрирует все HTTP-запросы на консоль.