首页 > 解决方案 > 无法在 Chrome 扩展程序(Chrome 72+)中设置引用(或 Cookie)标头

问题描述

在 Chrome 72+ 中,设置任何标题都有效:

    chrome.webRequest.onBeforeSendHeaders.addListener(function(details){
        details.requestHeaders.push({name:"Anything", value:"https://google.com"}); 
// ...

但是设置Referer不会:

chrome.webRequest.onBeforeSendHeaders.addListener(function(details){
    details.requestHeaders.push({name:"Referer", value:"https://google.com"}); 
// ...

标签: google-chromegoogle-chrome-extension

解决方案


从 Chrome 72 开始,根据这篇文章,如果您正在修改 Accept-Language、Accept-Encoding、Cookie 或 Referer,则必须添加extraHeadersextraInfoSpec数组中。要向后兼容(Chrome 71 及更低版本),请检查属性EXTRA_HEADERS.

var extraInfoSpec = ['blocking', 'requestHeaders'];
if (chrome.webRequest.OnBeforeSendHeadersOptions.hasOwnProperty('EXTRA_HEADERS')) extraInfoSpec.push('extraHeaders');

chrome.webRequest.onBeforeSendHeaders.addListener(function(details){
// ...
}, {
  urls:[urls]
}, extraInfoSpec);

推荐阅读