Я использую AWS Serverless
для создания небольшого сайта с примерно 15 функциями Lambda.
Мой стек Cloudformation полностью построен с использованием SAM
.
Я НЕ использую интеграцию с лямбда-прокси.
Раздел Api в конфигурации шаблона SAM
yaml выглядит так:
AppApi:
Type: AWS::Serverless::Api
Properties:
Cors:
AllowMethods: "'*'"
AllowHeaders: "'Content-Type'"
AllowOrigin: "'*'"
...........More Stuff..........
Когда я развертываю этот шаблон SAM
yaml, я вижу, что мой ApiGateway создал команду OPTIONS для всех методов, и когда я отправляю запрос с помощью команды OPTIONS, я правильно вижу заголовки CORS
.
Проблема в том, что другие глаголы (например, POST) не добавляют эти заголовки в свой ответ, как это сделал запрос OPTIONS, и когда я запускаю свой api из браузера, я получаю ошибку политики перекрестного происхождения в моей консоли.
Итак, моим текущим обходным путем было добавление заголовка CORS с использованием интегрированных ответов на определенные коды состояния, но я не могу и не хочу обрабатывать это для 15 методов, и я хочу поддерживать все коды состояния ответа (например, 4xx \ 5xx и т. Д.).
Мои вопросы:
- Я здесь что-то не так делаю или это
SAM
ошибка? - Если это ошибка, есть ли какое-либо обходное решение, кроме добавления заголовков с использованием интегрированных ответов (или из моего кода)?
- Есть ли способ добавить заголовки «глобально» из шлюза Api? Или поддерживать какие-то глобальные комплексные ответы?