Prasības: Pārtveriet visus XMLHttpRequest pieprasījumus un, kad aizmugursistēmas interfeiss atgriež nederīgu pieteikšanās statusa kodu, pārejiet tieši uz pieteikšanās interfeisu un vairs nenododiet to. To var izmantot arī, lai pieprasītu vienotu parakstu pievienošanu, automātisku protokola izšķirtspēju, saskarnes zvanu statistiku utt.
Pārskats:
Lai gan jQuery var pārtvert Ajax pieprasījumus, tas ir ierobežots ar zvanītāju, izmantojot ajax metodes jQuery un nevar pārtvert pieprasījumus, izmantojot vietējo XMLHttpRequest.Tā kā ajax pieprasījums jQuery ir arī XMLHttpRequest iekapsulējums, mēs faktiski varam pārtvert XMLHttpRequest。
ajax-hook ir viegla bibliotēka pārlūkprogrammas XMLHttpRequest objektu pārtveršanai, ko var izmantot, lai iepriekš apstrādātu pieprasījumus, atbildes un kļūdas, pirms XMLHttpRequest objekts uzsāk pieprasījumu, pēc atbildes satura saņemšanas un kad rodas kļūda. Ajax-hook ir ļoti saderīgs un var darboties jebkurā pārlūkprogrammā, kas atbalsta ES5, jo tas nepaļaujas uz ES6 funkcijām.
Princips: ajax-hook pielāgo XMLHttpRequest metodes un rekvizītus, lai ignorētu globālo XMLHttpRequest objektu. XMLHttpRequest objektam tiek aplauzts starpniekservera slānis.
Atvērtā koda adrese:Hipersaites pieteikšanās ir redzama.
CDN adrese:Hipersaites pieteikšanās ir redzama.
Starpniekserveris pret āķi
Gan proxy(), gan hook() var izmantot, lai pārtvertu globālos XMLHttpRequests. To atšķirības ir:hook() ir smalka pārtveršanas granularitāte, var būt specifiska noteiktai XMLHttpRequest objekta metodei, atribūtam vai atzvanīšanai, taču to ir grūtāk izmantot, un daudzas reizes ne tikai biznesa loģika ir jāizkliedē dažādos atzvanījumos, bet arī ir pakļauta kļūdām. Betproxy() ir augsta abstrakcijas pakāpe, un tiek izveidots pieprasījuma konteksts (pieprasījuma informācijas konfigurāciju var iegūt tieši katrā atzvanīšanas laikā), kas ir vienkāršāk un efektīvāk lietojams.
Lielākoties mēsIeteicams izmantot proxy() metodi, ja vien tā neatbilst jūsu vajadzībām。
Mēģiniet pievienot jQuery ajax pieprasījuma pārtveršanu un starpniekservera pārtveršanu ajax-hook, kods ir šāds:
Mēģiniet nosūtīt saņemšanas pieprasījumu, izmantojot jQuery, un jūs to varat redzētAbus var pārtvert, kā parādīts attēlā:
Nosūtiet pieprasījumu, izmantojot vietējo XMLHttpRequest, atklājietTikai ajax-hook var pārtvert, kā parādīts attēlā:
Citi ajax-hook starpniekservera izmantošanas veidi:
Piemērs:Hipersaites pieteikšanās ir redzama.
(Beigas)
|