Persyaratan: Cegat semua permintaan XMLHttpRequest, dan ketika antarmuka backend mengembalikan kode status login tidak valid, langsung ke antarmuka login dan tidak lagi meneruskannya. Ini juga dapat digunakan untuk meminta penambahan tanda tangan terpadu, resolusi protokol otomatis, statistik panggilan antarmuka, dll.
Resensi:
Meskipun jQuery dapat mencegat permintaan Ajax, jQuery terbatas pada pemanggil yang menggunakan metode ajax di jQuery dan tidak dapat mencegat permintaan menggunakan XMLHttpRequest asli.Karena permintaan ajax di jQuery juga merupakan enkapsulasi dari XMLHttpRequest, kita benar-benar dapat mencegat XMLHttpRequest。
ajax-hook adalah pustaka ringan untuk mencegat objek XMLHttpRequest browser, yang dapat digunakan untuk memproses permintaan, respons, dan kesalahan sebelum objek XMLHttpRequest memulai permintaan, setelah menerima konten respons, dan ketika terjadi kesalahan. Ajax-hook sangat kompatibel dan dapat berjalan di browser apa pun yang mendukung ES5, karena tidak bergantung pada fitur ES6.
Prinsip: ajax-hook menyesuaikan metode dan properti di XMLHttpRequest untuk mengganti objek XMLHttpRequest global. Lapisan proksi dibungkus untuk objek XMLHttpRequest.
Alamat Sumber Terbuka:Login hyperlink terlihat.
Alamat CDN:Login hyperlink terlihat.
proksi vs. kait
Baik proxy() dan hook() dapat digunakan untuk mencegat XMLHttpRequests global. Perbedaannya adalah:hook() memiliki granularitas intersepsi halus, dapat spesifik untuk metode, atribut, atau callback tertentu dari objek XMLHttpRequest, tetapi lebih merepotkan untuk digunakan, dan sering kali, tidak hanya logika bisnis yang perlu tersebar di berbagai callback, tetapi juga rentan terhadap kesalahan. padahalproxy() memiliki tingkat abstraksi yang tinggi, dan konteks permintaan dibangun (konfigurasi informasi permintaan dapat diperoleh langsung di setiap callback), yang lebih sederhana dan lebih efisien untuk digunakan.
Sebagian besar waktu, kamiDisarankan untuk menggunakan metode proxy() kecuali tidak memenuhi kebutuhan Anda。
Coba tambahkan intersepsi permintaan ajax jQuery dan intersepsi proxy di ajax-hook, kodenya adalah sebagai berikut:
Coba kirim permintaan get menggunakan jQuery dan Anda dapat melihatnyaKeduanya dapat dicegat, seperti yang ditunjukkan pada gambar di bawah ini:
Mengirim permintaan menggunakan XMLHttpRequest asli, temukanHanya ajax-hook yang dapat mencegat, seperti yang ditunjukkan pada gambar di bawah ini:
Lebih banyak kegunaan ajax-hook proxy:
Contoh:Login hyperlink terlihat.
(Akhir)
|