Скрипт заблокирован политикой CORS

259
09 мая 2022, 15:20

В расширении для Chrome я пытаюсь загрузить некоторый скрипт с помощью XMLHttpRequest, но получаю следующую ошибку:

Access to XMLHttpRequest at '...' from origin '...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Как обойти политику CORS и всё таки загрузить нужный скрипт?

Answer 1

Решение заключается в добавлении background script, который регистрирует обработчик события получения заголовков ответа сервера. В обработчике необходимо добавить в ответ сервера заголовок access-control-allow-origin со значением * - это заставляет браузер думать, что содержимое ответа сервера может быть доступно для любого "origin", который отправил запрос.

background.js:

chrome.webRequest.onHeadersReceived.addListener(
    function (details) {
        var rule = {
            "name": "access-control-allow-origin",
            "value": "*"
        };
        details.responseHeaders.push(rule);
        return { responseHeaders: details.responseHeaders };
    },
    { urls: ["<all_urls>"] },
    ["blocking", "responseHeaders", "extraHeaders"]);

Так же добавим следующие строки в manifest.json:

"background": {
    "scripts": [ "background.js" ],
    "persistent": true
},
"permissions": [
    "webRequest",
    "webRequestBlocking",
    ...
]
READ ALSO
Vue обработка событий

Vue обработка событий

Не пойму что не такпостараюсь как можно подробнее объяснить

289
долгий ответ от стороннего API

долгий ответ от стороннего API

Я получаю API от сторонних сервисов на PHP, процесс занимает некоторое времяМетод получения API вызывается AJAX запросом из вьюшки

163
Как проверить весь collection в MOngoDb для LogIn

Как проверить весь collection в MOngoDb для LogIn

Как проверить весь collection в MOngoDb для LogIn) Спасибо)

174
Как проверить содержание подменю?

Как проверить содержание подменю?

Подскажите, как проверить есть ли у меню подменю? Моя задумка простая: если у элемента li внутри есть элемент ul, значит подменю содержится и родителю...

217