Απαιτήσεις: Υποκλέψτε όλα τα αιτήματα XMLHttpRequest και όταν η διεπαφή υποστήριξης επιστρέψει τον κωδικό μη έγκυρης κατάστασης σύνδεσης, μεταβείτε απευθείας στη διεπαφή σύνδεσης και μην τον μεταβιβάσετε πλέον. Μπορεί επίσης να χρησιμοποιηθεί για να ζητήσει την προσθήκη ενοποιημένων υπογραφών, αυτόματη ανάλυση πρωτοκόλλου, στατιστικά κλήσεων διεπαφής κ.λπ.
Αναθεώρηση:
Ενώ το jQuery μπορεί να υποκλέψει αιτήματα Ajax, περιορίζεται στον καλούντα που χρησιμοποιεί μεθόδους ajax στο jQuery και δεν μπορεί να υποκλέψει αιτήματα χρησιμοποιώντας το εγγενές XMLHttpRequest.Δεδομένου ότι το αίτημα ajax στο jQuery είναι επίσης μια ενθυλάκωση του XMLHttpRequest, μπορούμε πραγματικά να υποκλέψουμε το XMLHttpRequest。
Το ajax-hook είναι μια ελαφριά βιβλιοθήκη για την υποκλοπή αντικειμένων XMLHttpRequest του προγράμματος περιήγησης, η οποία μπορεί να χρησιμοποιηθεί για την προεπεξεργασία αιτημάτων, απαντήσεων και σφαλμάτων πριν το αντικείμενο XMLHttpRequest ξεκινήσει ένα αίτημα, μετά τη λήψη του περιεχομένου της απάντησης και όταν παρουσιαστεί σφάλμα. Το Ajax-hook είναι εξαιρετικά συμβατό και μπορεί να εκτελεστεί σε οποιοδήποτε πρόγραμμα περιήγησης που υποστηρίζει ES5, καθώς δεν βασίζεται σε λειτουργίες ES6.
Αρχή: ajax-hook προσαρμόζει τις μεθόδους και τις ιδιότητες στο XMLHttpRequest για να παρακάμψει το καθολικό αντικείμενο XMLHttpRequest. Αναδιπλώνεται ένα επίπεδο ενδιάμεσου εξυπηρετητή για το αντικείμενο XMLHttpRequest.
Διεύθυνση ανοιχτού κώδικα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Διεύθυνση CDN:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Πληρεξούσιος εναντίον γάντζου
Τόσο η proxy() όσο και η hook() μπορούν να χρησιμοποιηθούν για την υποκλοπή καθολικών XMLHttpRequests. Οι διαφορές τους είναι:hook() έχει λεπτή ευαισθησία αναχαίτισης, μπορεί να είναι συγκεκριμένο για μια συγκεκριμένη μέθοδο, χαρακτηριστικό ή επανάκληση του αντικειμένου XMLHttpRequest, αλλά είναι πιο ενοχλητικό στη χρήση και πολλές φορές, όχι μόνο η επιχειρηματική λογική πρέπει να είναι διάσπαρτη σε διάφορες επανακλήσεις, αλλά και επιρρεπής σε σφάλματα. ενώproxy() έχει υψηλό βαθμό αφαίρεσηςκαι δημιουργείται το πλαίσιο αιτήματος (η διαμόρφωση πληροφοριών αιτήματος μπορεί να ληφθεί απευθείας σε κάθε επανάκληση), το οποίο είναι απλούστερο και πιο αποτελεσματικό στη χρήση.
Τις περισσότερες φορές, εμείςΣυνιστάται η χρήση της μεθόδου proxy() εκτός εάν δεν ανταποκρίνεται στις ανάγκες σας。
Προσπαθήστε να προσθέσετε υποκλοπή αιτήματος ajax jQuery και υποκλοπή διακομιστή μεσολάβησης στο ajax-hook, ο κώδικας είναι ο εξής:
Δοκιμάστε να στείλετε ένα αίτημα λήψης χρησιμοποιώντας το jQuery και μπορείτε να το δείτεΚαι τα δύο μπορούν να αναχαιτιστούν, όπως φαίνεται στο παρακάτω σχήμα:
Στείλτε ένα αίτημα χρησιμοποιώντας το εγγενές XMLHttpRequest, ανακαλύψτεΜόνο το άγιαξ-άγκιστρο μπορεί να αναχαιτίσει, όπως φαίνεται στο παρακάτω σχήμα:
Περισσότερες χρήσεις του διακομιστή μεσολάβησης ajax-hook:
Παράδειγμα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
(Τέλος)
|