Memintas Permintaan AJAX Secara Global
Soalan: Adakah mungkin untuk mewujudkan "cangkuk" yang memintas semua permintaan AJAX dibuat pada halaman web, sama ada sebelum penghantaran atau semasa kitaran hayatnya? Diandaikan bahawa skrip pihak ketiga menggunakan jQuery atau rangka kerja lain mungkin wujud pada halaman.
Jawapan: Sudah tentu, anda boleh melaksanakan cangkuk generik yang memintas sebarang permintaan AJAX secara global tanpa mengganggu panggilan balik ditakrifkan oleh perpustakaan AJAX pihak ketiga. Berikut ialah coretan kod untuk ditunjukkan:
<code class="javascript">(function() { var origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { console.log('request started!'); this.addEventListener('load', function() { console.log('request completed!'); console.log(this.readyState); //will always be 4 (ajax is completed successfully) console.log(this.responseText); //whatever the response was }); origOpen.apply(this, arguments); }; })();</code>
Kod ini mengubah suai kaedah terbuka prototaip XMLHttpRequest untuk mendengar acara pemuatan, yang dicetuskan apabila permintaan AJAX berjaya diselesaikan. Dalam pendengar acara ini, anda boleh melakukan tindakan tersuai, seperti mengelog permintaan dan maklumat tindak balas, memanipulasi data respons, atau bahkan membatalkan permintaan.
Dengan menggunakan pendekatan ini, anda boleh menyambung ke semua permintaan AJAX yang dibuat pada halaman, tanpa mengira rangka kerja atau pustaka asas yang digunakan, menyediakan titik pusat untuk pemantauan, penyahpepijatan atau berinteraksi dengan komunikasi AJAX.
Atas ialah kandungan terperinci Bolehkah Anda Memintas Semua Permintaan AJAX pada Halaman Web Secara Global?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!