【发布时间】:2014-05-02 18:29:35
【问题描述】:
我正在做类似的事情:
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
...
但是最近发现有时候存储的请求参数和存储的响应参数属于不同的请求响应对。那么,这是否可以在 onHeadersReceived 事件中访问请求标头以防止不匹配。
【问题讨论】:
-
旁注:由于您根本没有修改请求标头,因此我建议您不要在 webRequest 事件中使用
blocking。阻塞事件会减慢网络请求。
标签: javascript google-chrome google-chrome-extension http-headers