Ответ 1
https://developer.chrome.com/extensions/xhr
Прочитайте эту документацию и убедитесь, что ваши разрешения настроены правильно.
Я делаю расширение Chrome, которое извлекает данные с моего собственного сервера. Он использует около 4 httpRequests за раз, но иногда я получаю консольную ошибку следующим образом:
XMLHttpRequest cannot load http://apps.radionsm.lv/apps/system/index.php?request=now. Origin chrome-extension://egkddfmbidfobhchndockbhjancbpfkd is not allowed by Access-Control-Allow-Origin.
для каждого иногда нет.
Если я отправлю header('Access-Control-Allow-Origin: *');
, это исправить?
https://developer.chrome.com/extensions/xhr
Прочитайте эту документацию и убедитесь, что ваши разрешения настроены правильно.
Вы пытаетесь использовать общий ресурс совместного использования (CORS). Плохая новость заключается в том, что без сервера как среднего человека нет способа сделать это на обычной веб-странице. Хорошей новостью является то, что в расширении chrome вы можете запросить разрешение на доступ к любому URL-адресу, который вы хотите. Просто поместите что-то подобное в ваш файл manifest.json.
Разрешить подключения к вашему сайту:
"permissions": [
"http://*.radionsm.lv/"
],
Разрешить подключения к любому сайту:
"permissions": [
"http://*/"
],
Когда пользователь установит расширение, Chrome сообщит им о разрешениях, необходимых в диалоговом окне, до завершения установки.
У Chrome Extensions есть два "режима" при выполнении междоменных XHR-запросов:
1) Если домен находится в разделе "Разрешения" файла manifest.json - запрос не имеет заголовка "Origin", и он всегда преуспевает.
2) Если домен не находится в "разрешениях" - запрос включает заголовок "Origin" со значением "chrome-extension://...". Это означает, что запрос является запросом CORS, а ответ должен иметь допустимый заголовок Access-Control-Allow-Origin для успеха.