Requisiti: Intercettare tutte le richieste XMLHttpRequest e, quando l'interfaccia backend restituisce il codice di stato di login invalido, saltare direttamente all'interfaccia di login e non passarla più. Può anche essere utilizzato per richiedere l'aggiunta di firme unificate, risoluzione automatica del protocollo, statistiche delle chiamate di interfaccia, ecc.
Recensione:
Sebbene jQuery possa intercettare le richieste Ajax, è limitato al chiamante che utilizza metodi ajax in jQuery e non può intercettare richieste usando XMLHttpRequest nativo.Poiché la richiesta ajax in jQuery è anche un incapsulamento di XMLHttpRequest, possiamo effettivamente intercettare XMLHttpRequest。
ajax-hook è una libreria leggera per intercettare gli oggetti XMLHttpRequest del browser, che può essere utilizzata per preprocessare richieste, risposte ed errori prima che l'oggetto XMLHttpRequest inizi una richiesta, dopo aver ricevuto il contenuto della risposta e quando si verifica un errore. Ajax-hook è altamente compatibile e può funzionare su qualsiasi browser che supporti ES5, poiché non si basa sulle funzionalità di ES6.
Principio: ajax-hook personalizza i metodi e le proprietà in XMLHttpRequest per sovrascrivere l'oggetto globale XMLHttpRequest. Un livello di proxy viene avvolto per l'oggetto XMLHttpRequest.
Indirizzo Open Source:Il login del link ipertestuale è visibile.
Indirizzo CDN:Il login del link ipertestuale è visibile.
Proxy vs. Hook
Sia il proxy() che il hook() possono essere usati per intercettare le richieste globali XMLHttp. Le loro differenze sono:Uncino() ha una granularità di intercettazione fine, può essere specifico per un certo metodo, attributo o callback dell'oggetto XMLHttpRequest, ma è più difficile da usare e, molte volte, non solo la logica di business deve essere dispersa in vari callback, ma anche soggetta a errori. mentreProxy () ha un alto grado di astrazione, e il contesto della richiesta viene costruito (la configurazione delle informazioni della richiesta può essere ottenuta direttamente in ogni callback), il che è più semplice ed efficiente da usare.
La maggior parte delle volte, noiSi consiglia di usare il metodo proxy() a meno che non soddisfi le tue esigenze。
Prova ad aggiungere jQuery intercettazione richiesta ajax e intercettazione proxy in ajax-hook, il codice è il seguente:
Prova a inviare una richiesta get usando jQuery e puoi vederlaEntrambi possono essere intercettati, come mostrato nella figura sottostante:
Invia una richiesta usando XMLHttpRequest nativo, scopriSolo l'ajax-hook può intercettare, come mostrato nella figura sottostante:
Altri usi del proxy ajax-hook:
Esempio:Il login del link ipertestuale è visibile.
(Fine)
|