Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menangkap Respons Pengepala HTTP dalam Sambungan Chrome?

Bagaimana untuk Menangkap Respons Pengepala HTTP dalam Sambungan Chrome?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 18:40:02318semak imbas

How to Capture HTTP Header Responses in a Chrome Extension?

Merakam Respons Pengepala HTTP dalam Sambungan Chrome

Latar Belakang

Pelanjutan Chrome menyediakan fungsi untuk mengubah suai tajuk permintaan sebelum menghantarnya. Walau bagaimanapun, mengakses pengepala respons tidak disokong secara langsung oleh API sambungan.

Penyelesaian: Suntikan Skrip DOM

Satu pendekatan untuk menangkap respons HTTP adalah dengan menyuntik skrip ke dalam DOM tapak web untuk memantau aktiviti rangkaian. Teknik ini menggunakan kod berikut:

// Background script: inject.js
var s = document.createElement('script');
s.src = chrome.runtime.getURL('injected.js');
s.onload = function() {
    this.remove();
};
(document.head || document.documentElement).appendChild(s);

// Content script: injected.js
(function(xhr) {

    // Override XMLHttpRequest methods
    var XHR = XMLHttpRequest.prototype;

    ['open', 'setRequestHeader', 'send'].forEach(function(method) {
        var originalMethod = XHR[method];

        XHR[method] = function() {
            // Intercept events and capture request and response headers
            ...
        };
    });

})(XMLHttpRequest);

Konfigurasi Manifes

Untuk menyuntik skrip, kemas kini manifes.json sambungan seperti berikut:

"content_scripts": [{
    "matches": ["*://website.com/*"],
    "run_at": "document_start",
    "js": ["contentscript.js", "inject.js"]
}],
"web_accessible_resources": [{
    "resources": ["injected.js"],
    "matches": ["*://website.com/*"]
}]

Hasil

Penyelesaian ini membenarkan pelanjutan menangkap dan melog kedua-dua pengepala permintaan dan respons, membolehkan pelanjutan untuk mendapatkan pengepala yang dikehendaki daripada respons.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Respons Pengepala HTTP dalam Sambungan Chrome?. 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