Krav: Fang opp alle XMLHttpRequest-forespørsler, og når backend-grensesnittet returnerer statuskoden for ugyldig innlogging, hopp direkte til innloggingsgrensesnittet og send det ikke lenger. Den kan også brukes til å be om tillegg av enhetlige signaturer, automatisk protokolloppløsning, grensesnittkallstatistikk osv.
Anmeldelse:
Selv om jQuery kan avskjære Ajax-forespørsler, er det begrenset til at kalleren bruker ajax-metoder i jQuery og kan ikke avskjære forespørsler med native XMLHttpRequest.Siden ajax-forespørselen i jQuery også er en innkapsling av XMLHttpRequest, kan vi faktisk avskjære XMLHttpRequest。
ajax-hook er et lettvektsbibliotek for å avskjære XMLHttpRequest-objekter i nettleseren, som kan brukes til å forhåndsbehandle forespørsler, svar og feil før XMLHttpRequest-objektet initierer en forespørsel, etter å ha mottatt svarinnholdet, og når en feil oppstår. Ajax-hook er svært kompatibel og kan kjøres i hvilken som helst nettleser som støtter ES5, siden den ikke er avhengig av ES6-funksjoner.
Prinsipp: ajax-hook tilpasser metodene og egenskapene i XMLHttpRequest for å overstyre det globale XMLHttpRequest-objektet. Et lag med proxy pakkes inn for XMLHttpRequest-objektet.
Åpen kildekode-adresse:Innloggingen med hyperkoblingen er synlig.
CDN-adresse:Innloggingen med hyperkoblingen er synlig.
proxy vs. hook
Både proxy() og hook() kan brukes til å avskjære globale XMLHttpRequests. Deres forskjeller er:hook() har en fin avskjæringsgranularitet, kan være spesifikk for en bestemt metode, attributt eller callback av XMLHttpRequest-objektet, men det er mer problematisk å bruke, og ofte må forretningslogikken ikke bare spres i ulike callbacks, men også være utsatt for feil. mensproxy() har en høy grad av abstraksjon, og forespørselskonteksten bygges (forespørselsinformasjonskonfigurasjonen kan hentes direkte i hver callback), noe som er enklere og mer effektivt å bruke.
Som oftest er viDet anbefales å bruke proxy()-metoden med mindre den ikke oppfyller dine behov。
Prøv å legge til jQuery ajax request interception og proxy interception i ajax-hook, koden er som følger:
Prøv å sende en get-forespørsel med jQuery, så kan du se denBegge kan avskjæres, som vist i figuren nedenfor:
Send en forespørsel med native XMLHttpRequest, DiscoverKun ajax-hook kan avskjære, som vist i figuren nedenfor:
Flere bruksområder for ajax-hook-proxy:
Eksempel:Innloggingen med hyperkoblingen er synlig.
(Slutt)
|