Che cos’è CORS?

CORS (condivisione delle risorse tra origini diverse) è il meccanismo con cui un server indica ai browser quali altri siti web possono leggere le sue risposte. Per impostazione predefinita, JavaScript su https://app.example.com può inviare una richiesta a https://api.example.com, ma il browser nasconde la risposta a meno che l’API non risponda con un header Access-Control-Allow-Origin che specifichi l’origine della pagina oppure *.

Per qualsiasi richiesta diversa da un semplice GET o da un POST tramite modulo semplice, ad esempio una PUT, una DELETE o una richiesta con un corpo JSON e un header Authorization, il browser chiede prima l’autorizzazione tramite una richiesta preliminare (preflight): una richiesta OPTIONS che indica il metodo e gli header che intende usare. La richiesta effettiva viene inviata solo se la risposta del server li consente.

Descrizione dello strumento

Inserisci l’URL chiamato dalla tua pagina, l’origine della pagina, il metodo e gli eventuali header personalizzati della richiesta, quindi premi Verifica CORS. Il nostro server invia le stesse richieste che invierebbe un browser e applica alle risposte le regole del browser:

  • La richiesta preliminare (OPTIONS) con Access-Control-Request-Method e Access-Control-Request-Headers
  • Una richiesta GET con l’header Origin, per leggere gli header CORS di una risposta normale

I controlli mostrano quali regole vengono rispettate o meno, mentre la tabella elenca tutti gli header CORS presenti in entrambe le risposte. Il metodo che scegli non viene mai inviato, quindi verificare un endpoint DELETE non elimina nulla.

Lo strumento indica anche se le richieste con cookies funzionerebbero. Queste richiedono l’origine esatta al posto di * e Access-Control-Allow-Credentials: true.

Gli assistenti IA collegati al server MCP Rapid Tool Set possono eseguire lo stesso controllo usando cors_checker.

Suggerimenti

  • Gli errori CORS provengono dal browser, non dal server. Una richiesta che funziona con curl o Postman può comunque essere bloccata nel browser, perché questi strumenti non applicano CORS.
  • Se la richiesta preliminare riceve una risposta 401 o 404, il server tratta OPTIONS come una richiesta normale. Consenti le richieste preliminari prima dei controlli di autenticazione.
  • Quando il server sceglie l’origine consentita per ogni richiesta, dovrebbe inviare anche Vary: Origin, altrimenti una CDN potrebbe fornire a un sito la risposta destinata a un altro.