Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 4352|Ответ: 2

[JavaScript] ajax-hook для веб-разработки перехватывает все запросы XMLHttpRequest

[Скопировать ссылку]
Опубликовано 22.06.2023 10:29:45 | | | |
Требования: Перехватить все запросы XMLHttpRequest, и когда интерфейс сервера возвращает код статуса недействительного входа, переходите напрямую на интерфейс входа и больше не передавайте его. Он также может использоваться для запроса добавления унифицированных сигнатур, автоматического разрешения протокола, статистики вызовов интерфейса и т.д.

Обзор:

jQuery перехватывает результаты, возвращаемые Ajax
https://www.itsvse.com/thread-9570-1-1.html
Хотя jQuery может перехватывать запросы Ajax, он ограничен вызовущим, использующими ajax-методы в jQuery, и не может перехватить запросы с использованием нативного XMLHttpRequest.Поскольку ajax-запрос в jQuery также является инкапсуляцией XMLHttpRequest, мы можем фактически перехватить XMLHttpRequest

ajax-hook — это лёгкая библиотека для перехвата браузерных объектов XMLHttpRequest, которая может использоваться для предварительной обработки запросов, ответов и ошибок до начала запроса объектом XMLHttpRequest, после получения содержимого ответа и при возникновении ошибки. Ajax-hook очень совместим и может работать в любом браузере, поддерживающем ES5, так как не зависит от функций ES6.

Принцип: ajax-hook настраивает методы и свойства в XMLHttpRequest, чтобы переопределить глобальный объект XMLHttpRequest. Для объекта XMLHttpRequest оборачивается слой прокси.

Открытый исходный код:Вход по гиперссылке виден.

Адрес CDN:Вход по гиперссылке виден.

Прокси против крючка

И proxy(), и hook() могут использоваться для перехвата глобальных XMLHttpRequests. Их различия таковы:hook() обладает тонкой гранулярностью перехвата, может быть специфичен для определённого метода, атрибута или обратного вызова объекта XMLHttpRequest, но использовать его сложнее, и часто бизнес-логика должна быть разбросана по разным обратным вызовам, но и подвержена ошибкам. тогда какproxy() обладает высокой степенью абстракции, и создаётся контекст запроса (конфигурацию информации о запросе можно получить напрямую в каждом обратном вызове), что проще и эффективнее в использовании.

Чаще всего мыРекомендуется использовать метод прокси(), если он не соответствует вашим потребностям

Попробуйте добавить jQuery ajax request interception и proxy interception в ajax-hook, код выглядит следующим образом:

Попробуйте отправить запрос на получение через jQuery, и вы увидите егоОба можно перехватить, как показано на рисунке ниже:



Отправьте запрос с использованием нативного XMLHttpRequest, обнаружитеТолько ajax-hook может перехватить, как показано на рисунке ниже:



Больше применений ajax-hook прокси:

Пример:Вход по гиперссылке виден.

(Конец)





Предыдущий:Операторы EF SQL автоматически генерируют IS NULL или IS NOT NULL
Следующий:.NET/C# Простой анализ исходного кода HttpClient
 Хозяин| Опубликовано 22.06.2023 10:32:52 |
Запросы и ответы API Intercept fetch():https://stackoverflow.com/questi ... onses-in-javascript
 Хозяин| Опубликовано 18.04.2024 8:39:18 |
Перехватить HTTP-ответ 401 Несанкционированный код входа при прыжке:

Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com