@KirSupi

Как принимать json через fetch?

Есть некоторый сайт (к сожалению, по некоторым причинам палить не могу). У него есть свой api. Если с браузера перейти по ссылке, то спокойно выдает данные в json. Пытаюсь брать эти данные с fetch, чтобы потом использовать их в react. При запросе выдаёт:
Access to fetch at 'https://site.ru/api' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Причём посылает меня даже если поменять origin с localhost на норм домен.
Что делать?
Пробовал поставить 'no-cors' mode, но тогда ведь запрос возвращает пустой, а мне надо json брать и обрабатывать.
  • Вопрос задан
  • 94 просмотра
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
CORS не даст вам запросить со страницы вашего сайта в браузере ресурс постороннего сайта, если на нём это не разрешено явно.
Делайте из своего фронта запрос к своему бэкенду, чтобы он запрашивал нужный ресурс и отдавал значение фронту.
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
В вашем случае - никак, в том и смысл CORS.
Можно поднять сервер, который будет проксировать запросы и менять заголовки так, чтобы был нужный CORS.
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
пропиши прокси https://webpack.js.org/configuration/dev-server/#d...
к примеру так:
devServer: {
        proxy: {
            "/api/*": {
                target: "https://*тут url сервера*"
            }
        }
    },
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы