javascript - 无法通过 Chrome 扩展程序编辑响应 header

标签 javascript google-chrome google-chrome-extension

只是无法编辑响应头

chrome.webRequest.onHeadersReceived.addListener(function (details) {
for(i=0;i<details.responseHeaders.length;i++)
{
if(details.responseHeaders[i].name.toLocaleLowerCase()=='content-type')
{
alert(details.responseHeaders[i].name); //it works
details.responseHeaders[i].value='text/plain; charset=utf-8';
}
}
return {responseHeaders: details.responseHeaders};
}, {urls: ["<all_urls>"]}, ['responseHeaders']);

它提醒 Content-Type 但不能编辑值?

最佳答案

刚刚做了

chrome.webRequest.onHeadersReceived.addListener(function (details) {
    var yeniheaderlar =
        [{
            name : "Content-Security-Policy",
            value : "sil"
        }, {
            name : "Content-Security-Policy-Report-Only",
            value : "sil"
        }, {
            name : "X-Content-Security-Policy",
            value : "sil"
        }, {
            name : "X-WebKit-CSP",
            value : "sil"
        }, {
            name : "X-Frame-Options",
            value : "sil"
        }, {
            name : "X-XSS-Protection",
            value : "sil"
        }, {
            name : "Access-Control-Allow-Origin",
            value : "*"
        }, {
            name : "Access-Control-Allow-Methods",
            value : "POST, GET, OPTIONS, DELETE, PUT"
        }, {
            name : "Access-Control-Allow-Headers",
            value : "*"
        }
    ];
    for (z = 0; z < yeniheaderlar.length; z++) {
        var zamazingo = false;
        for (i = 0; i < details.responseHeaders.length; i++) {
            if (details.responseHeaders[i].name.toLowerCase() == yeniheaderlar[z].name.toLowerCase()) {
                if (yeniheaderlar[z].value == "sil") {
                    details.responseHeaders.splice(i, 1);
                } else {
                    details.responseHeaders[i].value = yeniheaderlar[z].value; ;
                }
                zamazingo = true;
            }
        }
        if (!zamazingo && (yeniheaderlar[z].value != 'sil')) {
            details.responseHeaders.push(yeniheaderlar[z]);
        }
    }
    return {
        responseHeaders : details.responseHeaders
    };
}, {
    urls : ["<all_urls>"],
    types : ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
    ["blocking", "responseHeaders"]);

关于javascript - 无法通过 Chrome 扩展程序编辑响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644924/

相关文章:

javascript - 如何在 Chrome Extension Manifest.json 中设置内容安全策略以使 Firebase 正常工作

css - 错了一个 :link tag being used (Chrome)

html - 如何禁用 Chrome 自动填充用户名/电子邮件密码?

javascript - Sequelize-auto 无法连接到命名的 MSSQL 实例

javascript - 为什么图片在 HTML 中横向显示?

google-chrome - Chrome 扩展 : How to detect if an extension is installed using Content Scripts

javascript - JQuery Chrome 扩展,无法更改 css 属性

javascript - JavaScript 中的字符串压缩

javascript - Angular 过滤器: don't use the data of the other array

javascript - jQuery 将 .data 加载到子元素