[英]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.