修改标头上的标头已接收

Modify headers on onHeadersReceived

本文关键字:修改      更新时间:2023-09-26

在我的chrome扩展程序中,我需要在每个浏览网站的标题中添加一行。在后台.js文件我添加了这样的代码:

var responseListener = function(details){
    var rule = {
        "name": "Access-Control-Allow-Origin",
        "value": "*"
    };
    details.responseHeaders.push(rule);
    return {responseHeaders: details.responseHeaders};
};
 chrome.webRequest.onHeadersReceived.addListener(responseListener,
     {urls: [   "*://*/*" ] },
     ["blocking", "responseHeaders"]);

在调试时,处理程序被调用,新添加的标头成功通过了我在堆栈中找到的任何过滤器。但它在网络选项卡的响应标头部分看不到,并且不会影响任何代码。我使用这些权限:

"tabs","<all_urls>", "http://*/*" ,"webRequest","webRequestBlocking", "webNavigation"

是否有新的策略或 API 更改,不允许执行此类操作,或者我的 10 行代码中存在一些错误?

Chrome 开发者工具的"网络"标签页不会显示扩展程序所做的修改。请参阅 https://crbug.com/258064

如果要查看扩展是否已成功修改请求,请访问 chrome://net-internals/#events ,单击类型 URL_REQUEST 的请求并查找URL_REQUEST_DELEGATE条目,例如 URL_REQUEST_FAKE_RESPONSE_HEADERS_CREATED(这是通过chrome.declarativeWebRequest API生成的日志条目的示例)或"delegate_info = "extension [extension name]"(由chrome.webRequest生成)。