Задать вопрос

Как настроить fetch и сервер для приема json с другого сайта?

Пытаюсь сам написать парсер сайтов, чтобы он потом сохранял где-то данные. Проблема вышла с сохранением. Сайт, где лежит php обработчик, парсится и сохраняется нормально. Но если запустить скрипт из консоли на другом сайте, то файл создается, но данные в него не попадают.
Много всего нагуглил, но не смог разобраться. Какие правильные параметры в fetch и что нужно сделать на сервере или что писать в .htacces? Там пробовал разные варианты, сейчас все убрал.
fetch(URL, {
    method: "POST",
    mode: "cors",
    credentials: "include",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify(json)
})


В консоли выдает:
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://site.ru/parse/json.php. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).

Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://site.ru/parse/json.php. (Причина: не удалось выполнить запрос CORS).
  • Вопрос задан
  • 608 просмотров
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@GrayHorse
mode: "cors"
Это не волшебная фраза, отключающая CORS. Этот режим fetch запроса нужен лишь для кеширования сервис воркером ресурсов, которые могу быть "cross-origin embed" и больше не для чего.

Вам же нужно, чтобы сервер отдавал заголовок Access-Control-Allow-Origin: https://yoursite.com, где https://yoursite.com – сайт, на котором работает скрипт. Можно и * вместо https://yoursite.com, если fetch будет без credentials: "include".
Ответ написан
Ваш ответ на вопрос

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

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