Политика CORS в AWS Elasti c бобовый стебель и S3 stati c веб - PullRequest
0 голосов
/ 26 февраля 2020

Я использую nodejs в качестве бэкэнда и размещаю его в AWS. Я сделал эту конфигурацию в проекте узла:

app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept, Authorization"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, POST, PATCH, PUT, DELETE, OPTIONS"
  );
  res.setHeader(
    "Access-Control-Allow-Credentials",
    "true"
  );
  next();
});

Интерфейс, который находится в корзине S3, создается с помощью Ioni c angular. И вот его конфигурация и перехватчик:

  req = req.clone({
     setHeaders : {
         Authorization: "Bearer " + userToken,
         'Content-Type': `application/json; charset=utf-8`
         }
  });

В корзину S3 (в которой размещен внешний интерфейс) я добавил эту конфигурацию в конфигурации CORS:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>http://*</AllowedOrigin>
    <AllowedOrigin>https://*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

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

«Ответ на предпечатный запрос не проходит проверку контроля доступа: нет заголовка« Access-Control-Allow-Origin » присутствует на запрошенном ресурсе. "

Что осталось в моей конфигурации и как ее решить?

1 Ответ

0 голосов
/ 26 февраля 2020

Для локальной среды вам необходимо использовать этот плагин для chrome браузера. После установки вам нужно включить его, тогда он будет работать нормально.

...