Я делаю расширение 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 Extensions есть два «режима» при выполнении междоменных XHR-запросов:
1) Если домен находится в разделе «Разрешения» файла manifest.json – запрос не имеет заголовка «Origin», и он всегда выполняется успешно.
2) Если домен не находится в «разрешениях» – запрос включает заголовок «Origin» со значением «chrome-extension: // …». Это указывает, что запрос является запросом CORS, и ответ должен иметь действительный заголовок Access-Control-Allow-Origin, чтобы добиться успеха.