Бессерверное включение CORS

Как включить CORS в Serverless?

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

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Я искал везде, и я все еще не мог понять, как это исправить. Любая помощь будет принята с благодарностью!!!

Вот моя установка:

Мой обработчик Python, проверенный с помощью serverless invoke local

def main(event, context):
    ...operations with pandas...

    return {
        'statusCode': 200,
        'headers': {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Credentials': True
        },
        'body': json.dumps(response),
    }

Мой безсерверный.yml

functions:
  main:
    handler: handler.main
    events:
      - http:
          path: dashboard
          method: get
          authorizer: aws_iam
          cors: true

Мой интерфейс, приложение React. Вызов API выполняется с помощью aws-amplify:

try{
  const myInit = {
    body: JSON.stringify(this.props.session),
    headers: {
      "Content-Type": "application/json"
    }
  };
  const calculation = await API.get("clearly", "/dashboard", myInit)
  console.log(calculation);
} catch(e) {
  ...
}

Спасибо!

Редактировать:

Пока я пытался включить CORS вручную в шлюзе API, я получил сообщение об ошибке Invalid Response status code specified. Захват


person DumbledoreD    schedule 22.08.2018    source источник


Ответы (1)


Вы создали метод OPTIONS с фиктивным типом интеграции, чтобы возвращать заголовки ответов, подобные этим

Access-Control-Allow-Methods Access-Control-Allow-Headers Access-Control-Allow-Origin

Просто ссылка ( https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html )

person Vishal    schedule 23.08.2018