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

Patricia Arquette
Lepaskan: 2024-10-25 05:49:02
asal
835 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!