CORS preflight
Tarayıcının "basit olmayan" çapraz kaynak isteklerinden önce, işleme izin verilip verilmediğini sormak için gönderdiği ek OPTIONS isteği. Tetikleyiciler: özel başlıklar, GET/POST/HEAD dışındaki yöntemler, form kodlaması dışındaki Content-Type.
Akış: 1) tarayıcı, Access-Control-Request-Method ve -Headers ile OPTIONS gönderir; 2) sunucu Access-Control-Allow-Origin, Allow-Methods ve Allow-Headers ile (önbellek için Max-Age ile) yanıtlar; 3) asıl istek geçer. Maliyeti bir gidiş gelişlik gecikmedir; Access-Control-Max-Age ile önbelleğe alınarak hafifletilir (varsayılan Chrome'da 5 sn, Firefox'ta 24 saat).
Klasik tuzak: sunucuda OPTIONS işleyicisi yoktur, preflight başarısız olur ve nedenini söylemeyen bir CORS hatası alırsınız. fetch'in hata mesajları belirsizdir; asıl suçlu DevTools'un Ağ sekmesinde, başarısız OPTIONS isteğinde görünür.