gooseNjuice
@gooseNjuice
JavaScript Fullstack

Почему сервер возвращает CORS localhost'у, а задеплоенному приложению — нет?

Доброго времени суток всем. Долго не могу решить проблемеу: react-приложение делает запрос к стороннему API и получает, если запущен локально, OK 200; а если бежит развернутый на где-то ec2-машине, то
такую вот ошибку
{
      "code": "AUTH-10",
      "description": "Access denied: not in allowed origins (CORS)",
      "details": {}
    }

Выполняется одинаковый код, заголовки различаются только значениями полей Origin и Referrer. Пробовал присвоить referrer'у в качестве значения пустую строку, мало ли :)
есть под рукой документация API, но ответа я там не увидел.
Прошу вашей помощи, господа знатоки.
P.S.: Какой информацией дополнить вопрос? Клиентский код запроса/request headers/response headers тут будут полезны?
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
dedalik
@dedalik
Веб разработчик
Добрый день,
CORS (Cross-Origin Resource Sharing) механизм, который использует дополнительные заголовки HTTP, чтобы дать браузерам указание предоставить веб-приложению, работающему в одном источнике, доступ к ответу на запрос к ресурсам из другого источника.

Точно трудно написать какое вам необходимо решение, так как не известно какой сервер вы используете. Давайте предположим, что вы используете express.js, тогда на стороне сервера вам необходимо сделать следующее:

var app = express();

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});


* - вместо звёздочки можно указать точный домен сайта.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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