gpt4 book ai didi

javascript - webRequest 监听器看不到 'cookie' 、 'referer' 、 'origin' 等 header

转载 作者:行者123 更新时间:2023-11-30 11:12:22 26 4
gpt4 key购买 nike

我们编写了一个 Chrome 扩展程序,它使用 onBeforeSendHeaders 事件为每个网络请求添加一个 cookie:

chrome.webRequest.onBeforeSendHeaders.addListener(addCookie, {
urls: ["<all_urls>"]
}, ["blocking", "requestHeaders"]);

function addCookie(details) {
if (details.url.match(/ourWebsite/)) {
details.requestHeaders.forEach(function (requestHeader) {
if (requestHeader.name.toLowerCase() === "cookie") {
//Code that adds a cookie with a value
}
});
return {requestHeaders: details.requestHeaders};
}
}

除了我自己的,它在每个人的 Chrome 上都运行良好。在调试扩展时,我注意到 details.requestHeaders 数组没有 cookie header (这总是错误的:requestHeader.name.toLowerCase() ===“cookie”)。

我的第一个想法是另一个扩展程序搞砸了我们的,所以我尝试了隐身模式(不允许其他扩展程序),但它没有用。

在扩展程序的 list 中,我们在 permissions 下同时拥有“cookies”和“webRequest”。

有什么想法吗?提前致谢!

最佳答案

根据这个https://developer.chrome.com/extensions/webRequest

  • Starting from Chrome 72, the following request headers are not provided and cannot be modified or removed without specifying 'extraHeaders' in opt_extraInfoSpec:

    • Accept-Language
    • Accept-Encoding
    • Referer
    • Cookie
  • since Chrome 79:

    • Origin
    • CORS preflight requests

Response headers for other listeners like onHeadersReceived:

  • since Chrome 72:
    • Set-Cookie
    • any header you want to modify before CORB is applied
  • since Chrome 79:
    • CORS preflight responses

因此,您应该将“extraHeaders”添加到 webRequest 监听器的第三个参数,对于您的示例,它应该是 ["blocking", "requestHeaders", "extraHeaders"]

请注意,它不会在不了解 extraHeaders 的旧的 72 之前的 Chrome 中运行,因此您可以使用以下技巧来获得一个普遍兼容的监听器:

chrome.webRequest.onBeforeSendHeaders.addListener(
addCookie,
{urls: ["<all_urls>"]},
["blocking", "requestHeaders",
chrome.webRequest.OnBeforeSendHeadersOptions.EXTRA_HEADERS].filter(Boolean)
);

关于javascript - webRequest 监听器看不到 'cookie' 、 'referer' 、 'origin' 等 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com