Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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:Вхід за гіперпосиланням видно.

Проксі проти гачка

І проксі(), і hook() можуть використовуватися для перехоплення глобальних XMLHttpЗапитів. Їхні відмінності такі:hook() має тонку гранулярність перехоплення, може бути специфічним для певного методу, атрибута або зворотного виклику об'єкта XMLHttpRequest, але це складніше у використанні, і часто бізнес-логіку потрібно розкидати по різних зворотних викликах, а й схильність до помилок. Той час якproxy() має високий ступінь абстракції, а контекст запиту створюється (конфігурація інформації запиту може бути отримана безпосередньо в кожному зворотному виклику), що є простішим і ефективнішим у використанні.

Більшість часу миРекомендується використовувати метод проксі(), якщо він не відповідає вашим потребам

Спробуйте додати jQuery ajax request interception та proxy interception у ajax-hook, код виглядає так:

Спробуйте надіслати запит на отримання через jQuery, і ви зможете це побачитиОбидва можна перехопити, як показано на рисунку нижче:



Надішліть запит за допомогою нативного XMLHttpRequest, discoverПерехоплює лише 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 08:39:18 |
Перехопити HTTP-відповідь 401 Код входу для несанкціонованого стрибка:

Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com