修改onHeadersReceived上的标头

FLC*_*LCL 6 javascript cross-domain google-chrome-extension

在我的Chrome扩展程序中,我需要在浏览的每个网站的标题中添加一行.在background.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"]);
Run Code Online (Sandbox Code Playgroud)

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

"tabs","<all_urls>", "http://*/*" ,"webRequest","webRequestBlocking", "webNavigation"
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*b W 9

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

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