CORS preflight
Dodatkowe żądanie OPTIONS, które przeglądarka wysyła przed „niestandardowymi” wywołaniami między domenami, by zapytać serwer, czy dana operacja jest dozwolona. Wyzwalają je własne nagłówki, metody inne niż GET/POST/HEAD i Content-Type inny niż kodowanie formularzy.
Przebieg: 1) przeglądarka wysyła OPTIONS z Access-Control-Request-Method i Headers, 2) serwer odpowiada nagłówkami Access-Control-Allow-Origin, Allow-Methods i Allow-Headers (plus Max-Age do cache’owania), 3) dopiero wtedy leci właściwe żądanie. Koszt: jedna dodatkowa runda sieciowa. Łagodzenie: cache przez Access-Control-Max-Age (domyślnie 5 s w Chrome, 24 h w Firefoksie). Typowa pułapka: serwer nie obsługuje OPTIONS → preflight pada → błąd CORS bez jasnej przyczyny. Komunikaty fetch są mętne; porażkę OPTIONS widać dopiero w zakładce Sieć w DevTools.