Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 4352|Răspunde: 2

[JavaScript] Hook-ul ajax pentru dezvoltarea web interceptează toate cererile XMLHttpRequest

[Copiază linkul]
Postat pe 22.06.2023 10:29:45 | | | |
Cerințe: Interceptați toate cererile XMLHttpRequest, iar când interfața backend returnează codul de stare invalid de autentificare, săriți direct la interfața de autentificare și nu îl mai treceți. Poate fi folosită și pentru a solicita adăugarea semnăturilor unificate, rezolvarea automată a protocolului, statisticile apelurilor de interfață etc.

Recenzie:

jQuery interceptează rezultatele returnate de Ajax
https://www.itsvse.com/thread-9570-1-1.html
Deși jQuery poate intercepta cererile Ajax, este limitat la apelantul care folosește metode ajax în jQuery și nu poate intercepta cererile folosind XMLHttpRequest nativ.Deoarece cererea ajax din jQuery este și o încapsulare a XMLHttpRequest, putem intercepta XMLHttpRequest

ajax-hook este o bibliotecă ușoară pentru interceptarea obiectelor XMLHttpRequest ale browserului, care poate fi folosită pentru a preprocesa cereri, răspunsuri și erori înainte ca obiectul XMLHttpRequest să inițieze o cerere, după ce a primit conținutul răspunsului și când apare o eroare. Ajax-hook este foarte compatibil și poate rula pe orice browser care suportă ES5, deoarece nu se bazează pe funcțiile ES6.

Principiu: ajax-hook personalizează metodele și proprietățile din XMLHttpRequest pentru a suprascrie obiectul global XMLHttpRequest. Un strat de proxy este înfășurat pentru obiectul XMLHttpRequest.

Adresă Open Source:Autentificarea cu hyperlink este vizibilă.

Adresa CDN:Autentificarea cu hyperlink este vizibilă.

Proxy vs. Hook

Atât proxy(), cât și hook() pot fi folosite pentru a intercepta XMLHttpRequest-uri globale. Diferențele lor sunt:Cârlig() are o granularitate fină de interceptare, poate fi specific unei anumite metode, atribut sau callback al obiectului XMLHttpRequest, dar este mai dificil de folosit și, de multe ori, nu doar logica de business trebuie dispersată în diverse callback-uri, ci și predispusă la erori. Întrucâtproxy() are un grad ridicat de abstractizare, iar contextul cererii este construit (configurația informațiilor de cerere poate fi obținută direct în fiecare callback), ceea ce este mai simplu și mai eficient de folosit.

De cele mai multe ori, noiSe recomandă să folosești metoda proxy(), cu excepția cazului în care aceasta nu corespunde nevoilor tale

Încearcă să adaugi interceptarea cererii ajax jQuery și interceptarea proxy în ajax-hook, codul este următorul:

Încearcă să trimiți o cerere get folosind jQuery și o poți vedeaAmbele pot fi interceptate, așa cum se arată în figura de mai jos:



Trimite o cerere folosind XMLHttpRequest nativ, discoverDoar ajax-hook poate intercepta, așa cum se arată în figura de mai jos:



Mai multe utilizări ale proxy-ajax-hook:

Exemplu:Autentificarea cu hyperlink este vizibilă.

(Sfârșit)





Precedent:Instrucțiunile EF SQL generează automat IS NULL sau IS NOT NULL
Următor:Analiză simplă a codului sursă .NET/C# HttpClient
 Proprietarul| Postat pe 22.06.2023 10:32:52 |
Cereri și răspunsuri API de interceptare fetch():https://stackoverflow.com/questi ... onses-in-javascript
 Proprietarul| Postat pe 18.04.2024 08:39:18 |
Intercept răspuns HTTP 401 Cod de autentificare neautorizat pentru salt:

Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com