«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как захватывать ответы HTTP-заголовка в расширении Chrome?

Как захватывать ответы HTTP-заголовка в расширении Chrome?

Опубликовано 26 ноября 2024 г.
Просматривать:456

How to Capture HTTP Header Responses in a Chrome Extension?

Захват ответов HTTP-заголовка в расширении Chrome

Background

Расширения Chrome обеспечивают эту функциональность изменять заголовки запросов перед их отправкой. Однако доступ к заголовкам ответов напрямую не поддерживается API-интерфейсами расширений.

Решение: внедрение скрипта DOM

Один из подходов к перехвату HTTP-ответов — внедрить скрипт в DOM веб-сайта для мониторинга сетевой активности. В этом методе используется следующий код:

// 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);

Конфигурация манифеста

Чтобы внедрить скрипт, обновите файл манифеста расширения.json следующим образом:

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

Результат

Это решение позволяет расширению захватывать и регистрировать заголовки как запроса, так и ответа, что позволяет расширению извлекать нужные заголовки из ответа.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3