Avete mai creato una richiesta di dati HTTP per poi essere colpiti da un errore rosso “l’accesso alla richiesta HTML è stato bloccato dalla politica cors” ?
Quando il vostro sito si trova sullo stesso dominio del server del servizio web, non c’è alcun problema. Tuttavia, questo non è il caso quando si esegue una richiesta di origine incrociata. L’accesso viene negato a causa della sicurezza del browser che impedisce le richieste HTTP a un altro dominio. Il risultato? Un errore di politica CORS.
Per consentire esplicitamente alcune richieste di origine incrociata sul server, 4D supporta ora il protocollo CORS. L’accesso ai dati con richieste di origine incrociata è appena diventato più facile!
Il protocollo CORS impedisce alle pagine web di effettuare richieste a domini diversi dal proprio. Tuttavia, a volte è necessario consentire ad altri siti di effettuare richieste di dati HTTP al vostro server. Fortunatamente, 4D offre due modi per definire le regole CORS e consentire esplicitamente alcune richieste di origine incrociata:
- attraverso la programmazione, oppure
- attraverso le impostazioni del database.
gestire i cors tramite programmazione
È possibile attivare CORS con due comandi:
//CORS Domains Settings
$settings
:=New collection
$settings .push(New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post"))
$settings .push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post"))
//enable CORS
WEB SET OPTION (Web CORS enabled;1)
//CORS Domains Settings WEB SET OPTION (Web CORS settings;$settings)
//start web server to apply CORS settings
WEB START SERVER
$hostWS$setting:=WEB Server(Web host database server)
$setting :=New object
//Enable CORS
$setting .CORSEnabled:=True
//CORS Domains Settings
$setting .CORSSettings:=New collection
$setting .CORSSettings.push(New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post"))
$setting .CORSSettings.push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post")
//start web server and apply CORS settings
$hostWS.
start( xml-ph-0
gestire CORS attraverso le impostazioni del database
Le nuove impostazioni sono disponibili nella scheda Impostazioni > Web > Opzioni (II):
È sufficiente aggiungere i nomi di dominio consentiti e i metodi disponibili. Al successivo avvio del server, verranno utilizzati automaticamente.