CORS (Cross-Origin Resource Sharing) to mechanizm przeglądarki, który określa, czy skrypt z jednej domeny może odczytać odpowiedź z innej domeny. Domyślnie przeglądarka blokuje takie odczyty zgodnie z zasadą same-origin.
Jak to działa?
Serwer w nagłówku Access-Control-Allow-Origin wskazuje domeny, którym zezwala na odczyt odpowiedzi. Dla niektórych żądań przeglądarka najpierw wysyła zapytanie wstępne (preflight, metoda OPTIONS).
Typowe błędy
- ustawienie
*dla API wymagającego uwierzytelnienia, - odbijanie dowolnej wartości nagłówka Origin,
- traktowanie CORS jako zabezpieczenia API — chroni on tylko przed odczytem w przeglądarce, nie przed samym wysłaniem żądania.
Mechanizm opiera się na nagłówkach, np. Access-Control-Allow-Origin, które serwer zwraca przeglądarce. CORS nie chroni serwera przed żądaniami spoza przeglądarki, więc nie zastępuje uwierzytelniania. Unikaj wartości * dla zasobów wymagających logowania.
Dlaczego widzę błąd CORS w konsoli?
Przeglądarka zablokowała odczyt odpowiedzi, bo serwer nie zezwolił na Twoją domenę. Problem rozwiązuje się po stronie serwera, a nie w kodzie klienta.
Wywołanie adresu niedozwoloną metodą HTTP serwer odrzuca, zwracając błąd 405 Method Not Allowed.
Zobacz w praktyce
Błąd 405 (Method Not Allowed) - co oznacza i jak go naprawić?
Edge SEO – jak wdrożyć zmiany na stronie przez middleware CDN?
Headless CMS - kiedy warto porzucić monolityczny CMS