Contenuto realizzato con l’ausilio dell’intelligenza artificiale.

CORS Header Tester & Generator

Risolvi all'istante i problemi di blocco CORS ("Blocked by CORS policy"). Inserisci l'URL del tuo client (Origine) e l'URL del tuo endpoint (Destinazione) per simulare ed analizzare le risposte preflight OPTIONS e generare le esatte stringhe di configurazione server.

Come funziona: I browser nascondono i dettagli dei fallimenti CORS per motivi di sicurezza, lasciando solo un vago errore in console. Questo simulatore lato server bypassa la sandbox del browser per darti un report diagnostico completo e le configurazioni esatte per risolvere l'errore.

Intestazioni frequenti:

Generatore di Configurazioni CORS

Queste regole vengono personalizzate in tempo reale con l'Origine ed i parametri che inserisci sopra.


                            

                            

                            

                            

                            

Come funziona CORS e come leggere il risultato del test

Origine e Same-Origin Policy

Per il browser un'origine è la combinazione di schema, dominio e porta: https://app.esempio.it e https://api.esempio.it sono origini diverse, e lo sono anche http:// e https:// dello stesso dominio. Per sicurezza il browser impedisce al codice JavaScript di una pagina di leggere le risposte di un'altra origine, a meno che il server chiamato non lo autorizzi esplicitamente con le intestazioni CORS (Cross-Origin Resource Sharing).

Richieste semplici e richieste con preflight

Le richieste GET, HEAD e POST senza intestazioni personalizzate e con Content-Type application/x-www-form-urlencoded, multipart/form-data o text/plain partono subito: il browser controlla solo la risposta. Tutte le altre, comprese le chiamate con application/json o con l'intestazione Authorization, sono precedute da una richiesta OPTIONS di verifica, il preflight. Il tester simula proprio questo passaggio e mostra se il server lo supera.

Le intestazioni che contano

  • Access-Control-Allow-Origin: l'origine autorizzata, oppure * per tutte (non con le credenziali).
  • Access-Control-Allow-Methods: i metodi ammessi nel preflight, per esempio GET, POST, PUT, DELETE.
  • Access-Control-Allow-Headers: le intestazioni che il client può inviare, per esempio Content-Type e Authorization.
  • Access-Control-Allow-Credentials: true se la richiesta porta cookie o autenticazione.
  • Access-Control-Max-Age: per quanti secondi il browser può riusare l'esito del preflight.
  • Access-Control-Expose-Headers: le intestazioni della risposta che il JavaScript può leggere oltre a quelle standard.

Gli errori più comuni

«No 'Access-Control-Allow-Origin' header is present»: il server non ha risposto con l'intestazione, spesso perché la configurazione vale solo per alcune rotte o non per gli errori (una risposta 401 o 500 senza intestazioni CORS appare nel browser come errore CORS).

Preflight fallito: la richiesta OPTIONS riceve un redirect, un 401 o un 404. Il preflight non porta credenziali, quindi deve passare senza autenticazione e rispondere con un codice 2xx.

Jolly con le credenziali: Access-Control-Allow-Origin: * insieme a cookie o withCredentials viene rifiutato; serve l'origine esatta più Access-Control-Allow-Credentials: true.

Intestazione duplicata: applicazione e proxy aggiungono entrambi Access-Control-Allow-Origin e il browser trova due valori. Va impostata in un solo punto.

Come usare il report

Inserisci come origine l'indirizzo esatto del sito che chiama, con schema e porta, e come destinazione l'endpoint che fallisce. Se il preflight non passa, parti dalla prima intestazione segnalata come mancante e applica la configurazione generata per il tuo server (Nginx, Apache, PHP, Express o Cloudflare); ricorda di aggiungere Vary: Origin se la risposta cambia a seconda dell'origine, così le cache non mescolano le risposte.

Domande frequenti su CORS

Perché la chiamata funziona con curl o Postman ma non dal browser?

CORS è una regola del browser: è il browser che legge le intestazioni della risposta e decide se consegnare il risultato al codice JavaScript della pagina. curl, Postman e le chiamate da server a server non applicano CORS, quindi la stessa richiesta può riuscire fuori dal browser e venire bloccata dentro.

Che cos'è la richiesta preflight OPTIONS?

Prima di una richiesta "non semplice" (per esempio con metodo PUT o DELETE, con un Content-Type come application/json o con intestazioni personalizzate come Authorization) il browser invia una richiesta OPTIONS con Access-Control-Request-Method e Access-Control-Request-Headers. Solo se la risposta autorizza metodo, intestazioni e origine il browser invia la richiesta vera.

Posso usare Access-Control-Allow-Origin: * con i cookie?

No. Quando la richiesta porta credenziali (cookie o autenticazione HTTP, con credentials: include o withCredentials) il server deve restituire l'origine esatta in Access-Control-Allow-Origin e aggiungere Access-Control-Allow-Credentials: true. Il carattere jolly * con le credenziali viene rifiutato dal browser.

Perché il browser segnala più valori in Access-Control-Allow-Origin?

Succede quando l'intestazione viene aggiunta due volte, per esempio sia dall'applicazione sia dal web server o dal proxy davanti. L'intestazione accetta un solo valore: va impostata in un solo punto della catena.

A cosa serve Vary: Origin?

Se il server restituisce un Access-Control-Allow-Origin diverso a seconda dell'origine che chiama, Vary: Origin dice alle cache (CDN, proxy, browser) di conservare una copia distinta per ogni origine. Senza, una cache può servire a un sito la risposta preparata per un altro, e la chiamata fallisce in modo intermittente.

Ultime dal Blog su Informatica

Francesco Zinghinì - Autore
Francesco Zinghinì  LinkedIn ↗  GitHub ↗ Ingegnere Elettronico specializzato in Teoria dei Sistemi (La Sapienza, Roma) · Fondatore di TuttoSemplice.com e MutuiperlaCasa.com · Consulente tecnico Fintech, SEO semantico e AI. Ha sviluppato modelli di calcolo fiscale e finanziario per piattaforme digitali a scala nazionale. I contenuti di questa pagina sono redatti e aggiornati direttamente dall'autore sulla base delle specifiche tecniche e degli standard di settore vigenti. Ultimo aggiornamento: 27/10/2026. Testo realizzato con l'ausilio dell'IA.
✓ Aggiornato 2026

TuttoSemplice.com · Newsletter

Ricevi i nuovi strumenti e le guide di TuttoSemplice

Una email ogni tanto con i calcolatori nuovi, le scadenze utili e le guide pratiche. Niente spam, ti cancelli quando vuoi.

*L’invio è gratis e senza impegno ed equivale al conferimento del consenso facoltativo, ma necessario per offrirti il servizio. Inviando la richiesta e dunque accettando l’informativa sulla privacy, autorizzi a trasmettere i tuoi dati a fornitori di terze parti che verificheranno in maniera indipendente le informazioni trasmesse. Informativa privacy · Vai alla pagina Newsletter

Scadenze, bonus e calcolatori utili, ogni giorno sul telefono.
Seguici sul canale Telegram di TuttoSemplice: gratis, senza spam, ti disiscrivi con un tocco.

Unisciti al canale