В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin» с включенным модулем CORS - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь заставить CORS работать на моем сервере AWS Lambda с использованием Serverless.Сейчас у меня есть два субдомена (api.site.co и app.site.co).

В моем файле app.js на Express я установил CORS и включил его следующим образом:

app.use(
  cors({
    origin: 'https://app.site.co',
    optionsSuccessStatus: 200,
  }),
);
app.options('*', cors());

И затем, используя модуль Axios в React, я делаю этот вызов:

axios
   .post('/users/register', user)
   .then(res => history.push('/login'))
   .catch((err) => {
     dispatch({
       type: GET_ERRORS,
       error: err.response.data,
     });
   });

Кроме того, в моем файле app.js для клиентского приложения:

axios.defaults.baseURL = 'https://api.site.co';

При отправке любого запроса я получаю эту ошибку:

Access to XMLHttpRequest at 'https://api.site.co/users/register' from origin 'https://app.site.co' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Итак, я также пытался изменить конфигурацию CORS на:

app.use(cors());
app.options('*', cors());

Но я все еще получаю ту же ошибку.

Есть предложения, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Это была проблема с установкой AWS Lambda Serverless.Мне нужно было добавить

functions:
  app:
    handler: app.handler
    events:
      - http:
          path: /
          method: any
          cors:
            origin: 'https://app.site.co'
      - http:
          path: '{proxy+}'
          method: any
          cors:
            origin: 'https://app.site.co'

, чтобы разрешить запросы CORS при проксировании к промежуточному программному обеспечению Express.

0 голосов
/ 06 февраля 2019

Похоже, что есть опечатка:

https://app.site.co/users/register => https://api.site.co/users/register

Вы делаете запрос на https://api.site.co, но ваша конфигурация указывает https://app.site.co

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...