Захват ответов 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