CORS preflight
Richiesta OPTIONS aggiuntiva che il browser invia prima delle chiamate cross-origin «non semplici» per chiedere al server se l'operazione è consentita. Scatta con header personalizzati, metodi diversi da GET/POST/HEAD e Content-Type diversi da quelli dei form.
Il flusso: 1) il browser invia OPTIONS con Access-Control-Request-Method e Headers, 2) il server risponde con Access-Control-Allow-Origin, Allow-Methods e Allow-Headers (più Max-Age per la cache), 3) la richiesta vera e propria prosegue. Costo in prestazioni: il preflight richiede un round-trip in più. Mitigazione: cache tramite Access-Control-Max-Age (predefinito 5 s in Chrome, 24 h in Firefox). Trappola frequente: il server non ha un gestore per OPTIONS, il preflight fallisce e compare un errore CORS senza indicazioni sul motivo. I messaggi di errore di fetch sono vaghi; il pannello Rete degli strumenti per sviluppatori mostra il fallimento di OPTIONS.