Wymagania: Przechwycać wszystkie żądania XMLHttpRequest i gdy interfejs backendowy zwraca nieprawidłowy kod statusu logowania, przejdź bezpośrednio do interfejsu logowania i nie przekazuj go dalej. Może być również używany do żądania dodawania zunifikowanych sygnatur, automatycznego rozwiązywania protokołów, statystyk wywołań interfejsu itp.
Recenzja:
Chociaż jQuery może przechwytywać żądania Ajax, jest ograniczony do wywołującego metod ajax w jQuery i nie może przechwytywać żądań za pomocą natywnego XMLHttpRequest.Ponieważ żądanie ajax w jQuery jest również enkapsulacją XMLHttpRequest, możemy faktycznie przechwycić XMLHttpRequest。
ajax-hook to lekka biblioteka do przechwytywania obiektów XMLHttpRequest przeglądarki, która może być używana do wstępnego przetwarzania żądań, odpowiedzi i błędów przed zainicjowaniem żądania przez obiekt XMLHttpRequest, po otrzymaniu treści odpowiedzi oraz w przypadku wystąpienia błędu. Ajax-hook jest bardzo kompatybilny i może działać na każdej przeglądarce obsługującej ES5, ponieważ nie opiera się na funkcjach ES6.
Zasada: ajax-hook dostosowuje metody i właściwości w XMLHttpRequest, aby nadpisać globalny obiekt XMLHttpRequest. Warstwa proxy jest owinięta dla obiektu XMLHttpRequest.
Adres open source:Logowanie do linku jest widoczne.
Adres CDN:Logowanie do linku jest widoczne.
Proxy vs. hook
Zarówno proxy(), jak i hook() mogą być używane do przechwytywania globalnych żądań XMLHttpRequests. Ich różnice to:hook() ma drobną granularność przechwytu, może być specyficzna dla konkretnej metody, atrybutu lub wywołania zwrotnego obiektu XMLHttpRequest, ale jest bardziej uciążliwa w użyciu, a często logika biznesowa musi być rozproszona w różnych połączeniach zwrotnych, ale także podatna na błędy. zaśproxy() charakteryzuje się wysokim stopniem abstrakcji, a kontekst żądania jest tworzony (konfiguracja informacji o żądaniu jest dostępna bezpośrednio w każdym callbacku), co jest prostsze i bardziej efektywne w użyciu.
Najczęściej myZaleca się stosowanie metody proxy(), chyba że nie spełnia ona Twoich potrzeb。
Spróbuj dodać przechwytywanie żądań jQuery ajax oraz przechwytywanie proxy w języku ajax-hook, kod wygląda następująco:
Spróbuj wysłać żądanie get za pomocą jQuery i zobaczysz toOba można przechwycić, jak pokazano na poniższym rysunku:
Wyślij żądanie za pomocą natywnego XMLHttpRequest, odkryjTylko hak ajax może przechwycić, jak pokazano na poniższym rysunku:
Więcej zastosowań proxy haka ajax:
Przykład:Logowanie do linku jest widoczne.
(Koniec)
|