Ошибка cors Access-Control-Allow-Origin происходит на NodeJS или Nginx - PullRequest
0 голосов
/ 19 февраля 2020

Прежде всего, я исследовал топи c после написания вопроса, есть много похожих вопросов, но я думаю, что проблема здесь другая:

Нет 'Access-Control- Allow-Origin '- Node / Apache Port Issue

Мы получаем это Access-Control-Allow-Origin cors error только когда мы отправляем тяжелый запрос :

Доступ к XMLHttpRequest по 'https://backend. *****. Es / xxxxxx' из источника 'https://www.testing . *******. es 'был заблокирован политикой CORS: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin»

Остальная часть запроса работает нормально, я попытался установить:

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  next();
});

, но я получил ту же ошибку .

Я начинаю думать, что это может быть связано с nginx.

Используемая нами архитектура:

  • NodeJs, Expressjs
  • Middlewares:

    const LIMIT = '100mb'; const global = () => [morganMiddleware (), сжатие (), cors (), bodyParser.urlencoded ({extended: true, limit: LIMIT}), bodyParser. json ({limit: LIMIT}), шлем ( ),];

  • Сервер: Nginx 12.14.1

  • Хост в AWS Elasti c BeanStalk

Дайте мне знать, если кто-нибудь знает, что может происходить, потому что я не знаю, идет ли это с нашего сервера nodejs или nginx. Мы протестировали множество решений и все еще проверяем другие варианты.

1 Ответ

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

Мы получаем эту ошибку на нашем сервере:

2020/02/20 10:56:00 [ошибка] 2784 # 0: * 127 клиент, предназначенный для отправки слишком большого тела: 4487648 байт , клиент: 172.31.3.222, сервер:, запрос: "PUT / cars / drafts / f7124841-f72 c -4133-b49e-d9f709b4cf4d HTTP / 1.1", хост: "backend.xxxxx.es", реферер: "https://www.testing.xxxx.es/sellcar/photos/f7124841-f72c-4133-b49e-d9f709b4cf4d "

Таким образом, помимо ошибки, отображаемой спереди, Access-Control-Allow-Origin это связано с ограничением, установленным в NGINX.

Теперь нам просто нужно выяснить, как получить доступ к нашему экземпляру beanstalk elasti c, чтобы изменить эти переменные, и это уже решено.

S SH to Elasti c Экземпляр Beanstalk

Чтобы решить его, создайте файл x.config внутри .ebextensions и измените эти переменные следующим файлом yaml:

files:
  "/etc/nginx/conf.d/01-client_max_body_size.conf":
    mode: 000644
    owner: root
    group: root
    content: |
      # MODIFIED VARIABLES ADDED BY 01-client_max_body_size.conf
      client_max_body_size 12m;
      client_body_buffer_size 16k;
container_commands:
  nginx_reload:
    command: sudo service nginx reload

Затем перераспределить вашу среду.

Большое спасибо всем за помощь!

...