Задать вопрос
skapunker
@skapunker
Умный

Браузер не загружает файлы, пишет No 'Access-Control-Allow-Origin. Что делать?

Есть парсер, который парсит определенную веб-страницу.
После чего прописывает туда тег
<base href="https://site.com/">

Но несмотря на это, ресурсы отказываются загружаться.
Консоль инспектора показывает ошибку:

Access to CSS stylesheet at 'https://site.com/css/style.css' from origin 'https://mysite.online' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.


Что делать? Не пойму никак.
Доступа к серверу с которого парсится веб-станица нету.
  • Вопрос задан
  • 384 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@bkosun
В целях безопасности браузеры ограничивают cross-origin запросы, инициируемые скриптами. Например, XMLHttpRequest и Fetch API следуют политике одного источника (same-origin policy). Это значит, что web-приложения, использующие такие API, могут запрашивать HTTP-ресурсы только с того домена, с которого были загружены, пока не будут использованы CORS-заголовки.


https://developer.mozilla.org/ru/docs/Web/HTTP/CORS

Загрузите (скачайте) нужные ресурсы и добавьте их на свою страничку (подмените нужные файлы)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AndryG
Парсер выполняется в браузере? Значит надо вникать в междоменные запросы, а там безопасности вагон и тележка. Конкретно про CORS в вики описано вполне доходчиво, что и как. Заголовка "Access-Control-Allow-Origin" на жертве нет, значит остается JSONP, который вам тоже не поможет.

Решение для вас - парсер на стороне сервера через CURL, который для жертвы выглядит обычным браузером и отдает ему все ресурсы без вопросов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы