Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk memintas Semua Permintaan AJAX pada Halaman dengan Tindakan Tersuai?

Bagaimana untuk memintas Semua Permintaan AJAX pada Halaman dengan Tindakan Tersuai?

Patricia Arquette
Patricia Arquetteasal
2024-10-25 05:49:02836semak imbas

How to Intercept All AJAX Requests on a Page with Custom Actions?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn