Inną główną przyczyną tego problemu może być różnica między protokołami HTTP / 1.1 i HTTP / 2.
Objaw: Niektórzy użytkownicy, nie wszyscy, zgłaszali wystąpienie błędu CORS podczas korzystania z naszego oprogramowania.
Problem:Access-Control-Allow-Origin
nagłówek brakowało czasami .
Kontekst: Mieliśmy Lambda na miejscu, przeznaczoną do obsługi OPTIONS
żądań i odpowiadania z odpowiednimi nagłówkami CORS, takimi jak Access-Control-Allow-Origin
dopasowywanie do białej listy Origin
.
Rozwiązanie: Brama interfejsu API wydaje się przekształcać wszystkie nagłówki na małe litery dla wywołań HTTP / 2, ale zachowuje wielkość liter w przypadku protokołu HTTP / 1.1. To spowodowało dostęp doevent.headers.origin
to niepowodzenie .
Sprawdź, czy też masz ten problem:
Zakładając, że Twój interfejs API znajduje się pod adresem https://api.example.com
, a interfejs użytkownika jest pod adresem https://www.example.com
. Używając CURL, wyślij żądanie za pomocą HTTP / 2:
curl -v -X OPTIONS -H 'Origin: https://www.example.com' https:
Wynik odpowiedzi powinien zawierać nagłówek:
< Access-Control-Allow-Origin: https://www.example.com
Powtórz ten sam krok, używając protokołu HTTP / 1.1 (lub z małym Origin
nagłówkiem):
curl -v -X OPTIONS --http1.1 -H 'Origin: https://www.example.com' https:
Jeśli Access-Control-Allow-Origin
brakuje nagłówka, możesz chcieć sprawdzić wielkość liter podczas czytania Origin
nagłówka.
Bucket Policy
? Upewnij się, że masz metodę w swojej polityce