简体   繁体   English

如何在Chrome扩展程序中的onHeadersReceived事件中访问请求标头

[英]How to access request headers in onHeadersReceived event in Chrome extension

I was doing something similar: 我做了类似的事情:

chrome.webRequest.onBeforeSendHeaders.addListener(function (details) {

    for (var i = 0; i < details.requestHeaders.length; ++i)
    {
        if (details.requestHeaders[i].name.toLowerCase() === 'user-agent')
        {
            message.useragent = details.requestHeaders[i].value;
        } 
        else if (details.requestHeaders[i].name.toLowerCase() === 'referer')
        {
            message.referrer = details.requestHeaders[i].value;
        } 
        else if (details.requestHeaders[i].name.toLowerCase() === 'cookie')
        {
            message.cookies = details.requestHeaders[i].value;
            console.log(details.requestHeaders[i].value);
        }
    }
    return {
        requestHeaders: details.requestHeaders
    };
}, {
    urls: [
        '<all_urls>'
    ],
    types: [
        'main_frame',
        'sub_frame',
        'xmlhttprequest'
    ]
}, [
    'blocking',
    'requestHeaders'
]);

and on receiving response:

chrome.webRequest.onHeadersReceived.addListener(function (details) {

    message.url = details.url;
    // and some other details
    ...

But recently I discovered that sometimes request parameters stored and response parameters stored belong to different request response pairs. 但最近我发现有时存储的请求参数和存储的响应参数属于不同的请求响应对。 So, is this possible to access request headers in onHeadersReceived event to prevent mismatch. 那么,这是否可以访问onHeadersReceived事件中的请求标头以防止不匹配。

You can use the requestId field to match headers saved in onBeforeSendHeaders with those in onHeadersReceived . 您可以使用requestId字段以匹配保存在头onBeforeSendHeaders与那些在onHeadersReceived

Request IDs are unique within a browser session. 请求ID在浏览器会话中是唯一的。 As a result, they could be used to relate different events of the same request. 因此,它们可用于关联同一请求的不同事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 Chrome MV3 扩展中使用 declarativeNetRequest API 处理 chrome.webRequest.onHeadersReceived 事件? - How to handle chrome.webRequest.onHeadersReceived event using declarativeNetRequest API in Chrome MV3 extension? 修改webRequest的onHeadersReceived事件中的响应标头以启动“另存为”窗口 - Modifying response headers in onHeadersReceived event of webRequest to initiate a “Save as” window 如何根据 Chrome 扩展中的用户选项修改 http 请求标头? - How to modify http request headers based on user options in a Chrome extension? 修改onHeadersReceived上的标头 - Modify headers on onHeadersReceived Google Chrome扩展程序-如何访问元素并发送HTTP请求? - Google Chrome extension - How to access an element and send a HTTP request? Chrome扩展JSONP请求访问全局变量 - Chrome extension JSONP request access global variable Chrome扩展程序可基于公共IP修改请求标头 - Chrome Extension to Modify request headers based on Public IP 有没有一种方法可以请求访问Chrome扩展程序弹出窗口的麦克风? - Is there a way to request microphone access for a chrome extension popup? 如何使用野生动物园扩展名修改请求标头 - How modify the request headers using safari extension Emberjs / Chrome / FFox:预检中的数字Access-Control-Request-Header - Emberjs/Chrome/FFox: numeric Access-Control-Request-Headers in preflight
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM