Rumah >hujung hadapan web >tutorial js >Bagaimana Anda Boleh Memintas Semua Permintaan AJAX pada Halaman Web?

Bagaimana Anda Boleh Memintas Semua Permintaan AJAX pada Halaman Web?

Susan Sarandon
Susan Sarandonasal
2024-10-26 14:21:02791semak imbas

How Can You Intercept All AJAX Requests on a Web Page?

Menyangkut Semua Permintaan AJAX pada Halaman

Mengubah suai permintaan AJAX untuk melakukan tindakan tambahan boleh menjadi penting untuk penyahpepijatan, analitik atau tujuan lain . Walau bagaimanapun, dengan berbilang skrip pihak ketiga menggunakan perpustakaan AJAX yang berbeza pada halaman, nampaknya mencabar untuk memintas kesemuanya.

Memintas Permintaan AJAX

Untuk memantau setiap AJAX permintaan, anda boleh menggunakan objek XMLHttpRequest. Berikut ialah penyelesaian teguh yang berfungsi walaupun dengan berbilang perpustakaan:

(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);
    };
})();

Kod ini mengatasi kaedah terbuka XMLHttpRequest untuk mendaftarkan pendengar acara bagi acara pemuatan. Apabila permintaan dimulakan, ia mencatat masa mula. Apabila permintaan selesai, ia merekodkan masa tamat, keadaan sedia dan teks respons.

Nota: Perlu diingat bahawa kaedah ini tidak berfungsi untuk permintaan pengambilan asli. Walau bagaimanapun, anda boleh menggunakan pendekatan proksi yang serupa untuk diambil jika perlu.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Memintas Semua Permintaan AJAX pada Halaman Web?. 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