Memintas Semua Permintaan AJAX pada Halaman dengan Tindakan Tersuai
S: Adakah mungkin untuk "menghubungkait" semua permintaan AJAX pada halaman , sama ada sebelum ia dihantar atau semasa acara, untuk melakukan tindakan tersuai?
J: Ya, ia boleh dilakukan dengan pendekatan berikut:
Memintas Permintaan AJAX
Untuk memintas semua permintaan AJAX pada halaman, kami boleh mengatasi kaedah open() objek XMLHttpRequest, yang digunakan untuk memulakan permintaan. Dengan memintas kaedah open(), kami boleh melaksanakan tindakan tersuai kami sebelum permintaan dihantar.
Berikut ialah kod untuk memintas permintaan AJAX:
<code class="js">(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>
Dengan melaksanakan kod di atas, kami boleh melakukan sebarang tindakan yang perlu, seperti mengelog URL permintaan, menambah pengepala tambahan atau mengubah suai data permintaan.
Skrip Pihak Ketiga
Pendekatan ini berfungsi walaupun dengan skrip pihak ketiga menggunakan jQuery atau perpustakaan AJAX lain kerana kami memintas objek XMLHttpRequest yang mendasari, yang digunakan oleh semua pelaksanaan AJAX. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini mungkin tidak berfungsi dengan API pengambilan asli.
Sumber Tambahan
Untuk mendapatkan maklumat lanjut tentang API addEventListener untuk mengendalikan acara AJAX, rujuk kepada: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress
Sokongan Penyemak Imbas
Pendekatan ini memang tidak berfungsi untuk Internet Explorer 8 atau lebih awal.
Atas ialah kandungan terperinci Bagaimana untuk memintas Semua Permintaan AJAX pada Halaman dengan Tindakan Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!