1) Мое приложение реакции было размещено в корзине S3, обслуживаемой Cloudfront с настраиваемым доменом.
2) Затем мой сервер API Express работает на экземпляре Lightsail с Nginx / PM2.
Теперь у меня возникает проблема 422
CORS при вызове конечной точки из моего React , Я пробовал следующее:
1) Добавьте следующие правила CORS в корзину S3, которая содержит активы моего приложения React:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
2) Вставьте сюда конфигурацию Nginx https://enable-cors.org/server_nginx.html на серверный блок моего API:
server {
location / {
proxy_pass http://localhost:3000
...
...
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
...
...
3) На странице «Поведения» моего облачного дистрибутива приложения React:
- 'Кэш на основе выбранного Заголовки запроса '-> Белый список заголовка
Origin
- Разрешены все методы http ...
- Переслать все файлы cookie ...
- Переслать все' Пересылка и кэширование строки запроса 'тоже ...
Но все равно не повезло.
Я могу получить ответ от запуска этого: curl -s -D - -H "Origin: https://app.react.app" https://api.react.app/isOnline
curl -i -X OPTIONS https://api.react.app/isOnline
дает мне HTTP/1.1 204 No Content
успеха.
Что еще я могу попробовать ...? Цени любые указатели ..