Безсерверная + лямбда + когнитивная проблема CORS - PullRequest
0 голосов
/ 29 января 2019

Я использую без сервера для развертывания моего сервиса.Вот как я настраиваю лямбда-функцию

hello:
  handler: handler.hello
  events:
    - http:
        path: /hello
        method: get
        cors: true
        authorizer: aws_iam

Также я использую AWS Cognito для авторизации вошедшего в систему пользователя.Те же учетные данные пользователя работают для других безсерверных сервисов, но для этого.мы отправляем правильные заголовки ответа, а также упомянутые в некоторых других решениях.Я перепробовал почти все, что мог найти.

Это ошибка, которую я получаю (хотя вызов опции дает 200).

Access to fetch at 'https://*******.execute-api.us-east-2.amazonaws.com/dev/hello' from origin 'http://***.ngrok.io' 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.

Буду признателен за вашу помощь.Пожалуйста, прокомментируйте, если вам нужна какая-либо другая информация, чтобы понять мою проблему.

Большое спасибо.

1 Ответ

0 голосов
/ 29 января 2019

вы должны также вернуть access-control-allow-Origin из лямбда респосне.

В python это что-то вроде этого

return {'statusCode': status_code, 
'body': response, 
'isBase64Encoded': False, 
'headers':{ 'Access-Control-Allow-Origin': 'http://localhost:3000'}}

подробнее об этом здесь

...