Motivo
Avviso: CORS header 'Access-Control-Allow-Origin' missing
Cos'è andato storto?
La risposta alla richiesta CORS manca dell'intestazione Access-Control-Allow-Origin
, usata per determinare se è possibile accedere alla risorsa partendo dal contenuto che opera nell'origine corrente.
Se il server è sotto il tuo controllo aggiungi l'origine del sito richiedente alla raccolta dei domini che hanno l'accesso all'intestazione Access-Control-Allow-Origin
.
Ad esempio, per permettere al sito https://amazing.site di accedere alla risorsa che fa uso di CORS, l'intestazione dovrebbe essere la seguente:
Access-Control-Allow-Origin: https://amazing.site
Puoi anche configurare un sito in modo che permetta l'accesso ad ogni altro sito usando il carattere jolly "*"
. Da usare preferibilmente solo per API pubbliche. API private non dovrebbero far uso di "*"
e dovrebbero avere un dominio specifico o un insieme di domini. In più il carattere jolly funziona solo per le richieste fatte con l'attributo crossorigin
impostato come "anonymous"
.
Access-Control-Allow-Origin: *
Attenzione: usare "*"
per permettere a tutti i siti di accedere ad API private è una pessima idea per ragioni che dovrebbero essere ovvie.
Ad esempio, con Apache, aggiungi una riga come la seguente alla configurazione del server (all'interno della sezione <Directory>
, <Location>
, <Files>
o <VirtualHost>
). Tipicamente la configurazione si trova in un file .conf
(comunemente httpd.conf
e apache.conf
), o in un file .htaccess
.
Header set Access-Control-Allow-Origin 'origin-list'
Per Nginx, il comando per attivare l'intestazione è il seguente:
add_header 'Access-Control-Allow-Origin' 'origin-list'
Vedi anche
- Errori CORS
- Glossario: CORS
- Introduzione a CORS