#javascript #google-chrome #google-chrome-extension #google-chrome-devtools #chrome-extension-manifest-v3
Вопрос:
Я пишу расширение для браузера, которое должно периодически получать обменный курс в формате JSON и помещать его в локальное хранилище. Но когда я пытаюсь сделать это в коде страницы любого сайта, я получаю ошибку:
Access to XMLHttpRequest at 'https://my.server.domain/currency.txt' from origin 'https://developer.mozilla.org' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Пример кода запроса
$updateUrl = "hhttps://my.server.domain/currency.txt"; $.get($updateUrl).done(function($updData) { });
Единственное место, где я могу запустить подобный сценарий, находится в popup.html, но мне нужно, чтобы обновления запускались автоматически. Я пытался сделать это в фоновом режиме, но в манифесте v3 такой возможности больше нет.
Единственный вариант-периодически открывать update.html страница расширения и выполняйте обновления на ней, но это происходит при открытии новой вкладки, и я хотел бы сделать это в фоновом режиме.
Какие-нибудь советы?
Ответ №1:
В общем, я написал это в background.js и это работает
fetch("https://my.server.domain/currency.txt") .then((response) =gt; { return response.json(); }) .then((data) =gt; { console.log(data); });
Теперь осталось выяснить, как заставить скрипт периодически обновлять данные, иначе он будет работать только один раз. Но это уже другая история.