
18.08.2022, 13:52
|
Аспирант
|
|
Регистрация: 05.08.2022
Сообщений: 64
|
|
Перехват http, fetch, ajax, websocket ответов
Подскажите пожалуйста, позволяет ли JS перехватить запрос и ответы на них, на запросы которые делает браузер при загрузки страницы ?
То есть к примеру загружаю я в браузере javascript.ru, но заранее ставлю некие прослушивали:
-на все http, ajax - запросы и ответы от сервера при загрузке страницы браузером.
-на все websocket - запросы и ответы от сервера при загрузке страницы браузером.
К примеру есть прослушивать .onload() - но он ставится только на http/https - ответы и только на инициированный мной запрос.
|
|

18.08.2022, 15:27
|
Аспирант
|
|
Регистрация: 05.08.2022
Сообщений: 64
|
|
Сообщение от Rise
|
Смотри в DevTools вкладку Network.
|
Причем тут DevTools ?
|
|

18.08.2022, 16:14
|
 |
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,776
|
|
Сообщение от Andy_kun
|
но заранее ставлю некие прослушивали:
|
А на что вы их ставите? На какой элемент или объект?
|
|

18.08.2022, 16:20
|
Аспирант
|
|
Регистрация: 05.08.2022
Сообщений: 64
|
|
Сообщение от voraa
|
А на что вы их ставите? На какой элемент или объект?
|
Ну к примеру так:
function my_func(event)
{
console.log("my_func")
console.log(event);
}
document.addEventListener("DOMContentLoaded", my_func);
document.addEventListener("readystatechange", my_func);
document.addEventListener("onreadystatechange ", my_func);
|
|

18.08.2022, 16:35
|
 |
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
|
|

18.08.2022, 16:47
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,601
|
|
Такого нет, потому что это в нормальной разработке не нужно. Даля дебага есть инструменты разработчка.
Но если очень хочется и твой скрипт подключается до остальных, то в javascript можно замонкипатчить практически всё.
Можно заменить EventTarget.prototype.addEventListener на свою обёртку над оным и прицепи свою нагрузку к любому назначаемому через addEventListener обработчику(не забыть сделать то же самое для removeEventListener, а то он перестанет работать).
Точно также можно подменить fetch, XMLHttpRequest.prototype.open и т.д. и т.п.
..upd: да, спасибо Vlasenko Fedor, если нужно именно и только сетевое взаимодействие, то можно врезаться через Service Worker.
__________________
29375, 35
Последний раз редактировалось Aetae, 18.08.2022 в 16:50.
|
|

18.08.2022, 17:13
|
 |
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
JavaScript для профессиональных веб-разработчиков. 4-е международное изд 2022 начиная с страницы 1105
Книга действительно, хорошая и обширная. Одна из лучших, советую
|
|

18.08.2022, 23:31
|
Аспирант
|
|
Регистрация: 05.08.2022
Сообщений: 64
|
|
Сообщение от Rise
|
А зачем это еще может быть нужно.
|
Не вежливо отвечать вопросом на вопрос 
|
|

19.08.2022, 07:42
|
 |
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,776
|
|
Сообщение от Andy_kun
|
Ну к примеру так:
function my_func(event)
{
console.log("my_func")
console.log(event);
}
document.addEventListener("DOMContentLoaded", my_func);
document.addEventListener("readystatechange", my_func);
document.addEventListener("onreadystatechange ", my_func);
|
Все равно не понимаю.
Сообщение от Andy_kun
|
То есть к примеру загружаю я в браузере javascript.ru, но заранее ставлю некие прослушивали:
|
На чей document вы хотите вешать прослушиватели. На document javascript.ru? А как вы повесите прослушиватель на чужую страницу, которая еще не загрузилась?
|
|

19.08.2022, 15:18
|
Аспирант
|
|
Регистрация: 05.08.2022
Сообщений: 64
|
|
Сообщение от voraa
|
Все равно не понимаю.
На чей document вы хотите вешать прослушиватели. На document javascript.ru? А как вы повесите прослушиватель на чужую страницу, которая еще не загрузилась?
|
Ну видимо это я не понимаю, а не Вы. 
|
|
|
|