Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 ч. |
Intercept fetch() заявки и отговори на API:https://stackoverflow.com/questi ... onses-in-javascript
 Хазяин| Публикувано в 18.04.2024 г. 8:39:18 ч. |
Прихващане на HTTP отговор 401 Неоторизиран скок код за вход:

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com