Изисквания: Прихващайте всички XMLHttpRequest заявки и когато бекенд интерфейсът върне невалидния статус код за вход, прехвърлете директно към интерфейса за вход и вече не го предавайте. Може да се използва и за искане на добавяне на унифицирани подписи, автоматично разрешаване на протокола, статистика на интерфейсните повиквания и др.
Преглед:
Въпреки че 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 прокси:
Пример:Входът към хиперлинк е видим.
(Край)
|