Пример кода для
background.js - для коррекции заголовков ответа и обхода
CORS:
// Обработчик для правки заголовков ответа:
chrome.webRequest.onHeadersReceived.addListener(
function(info) {
var headers = info.responseHeaders; // Получаем массив отсылаемых заголовков
// Обходим массив полученных заголовков:
for (var i=headers.length-1; i>=0; --i) {
var header = headers[i].name.toLowerCase(); // Считываем название того или иного заголовка
// При наличии совпадений, удаляем заголовок нахрен:
if (header == 'content-security-policy' || header == 'access-control-allow-origin') {
headers.splice(i, 1);
}
}
// Добавляем свой собственный разрешающий заголовок:
headers.push({name: 'Access-Control-Allow-Origin', value: '*'});
return {responseHeaders: headers}; // Вовращаем почищенный массив заголовков назад
},
{ urls: [ '<all_urls>' ], types: [ 'xmlhttprequest' ] },
['blocking', 'responseHeaders']
);
При этом в манифесте расширения у вас должны быть прописаны разрешения:
...
"permissions" : [ "webRequest", "webRequestBlocking", "<all_urls>" ],
"background" : { "persistent": true, "scripts": [ "background.js" ] },
...