Alguma vez criou um pedido de dados HTTP apenas para ser atingido por um erro vermelho “o acesso ao pedido HTML foi bloqueado pela política cors” ?
Quando o seu sítio está no mesmo domínio que o servidor do serviço web, não há problema. No entanto, este não é o caso quando efectua um pedido de origem cruzada. O acesso é negado devido à segurança do navegador que impede os pedidos HTTP para outro domínio. O resultado? Um erro de política CORS.
Para o ajudar a permitir explicitamente certos pedidos de origem cruzada no seu servidor, 4D suporta agora o protocolo CORS. O acesso a dados com pedidos de origem cruzada acabou de se tornar mais fácil!
O protocolo CORS impede que as páginas web possam fazer pedidos para outros domínios que não o seu próprio. Mas, por vezes, pode ser necessário permitir que outros sítios façam pedidos de dados HTTP ao seu servidor. Felizmente, 4D fornece duas formas de definir as regras CORS e permite explicitamente certos pedidos de origem cruzada:
- através de programação, ou
- através de definições de bases de dados.
gerir cors através de programação
Pode activar CORS com dois comandos:
//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"; "Web CORS enabled"; "methods"; "get;post"))
//enable CORS
WEB SET OPTION (//CORS Domains Settings;1)
$settings
WEB SET OPTION (Web CORS settings; )
//start web server to apply CORS settings
WEB START SERVER
$hostWSCORSSettings$setting:=WEB Server(Web host database server)
$setting :=New object
//Enable CORS
$setting .CORSEnabled:=True
//CORS Domains Settings //start web server and apply CORS settings $setting .
:=New collection
$setting .CORSSettings.push(New object("host"; "127.0.0.1:8888"; "métodos"; "get;put;post")) $setting .CORSSettings.push(New object("host"; " "; "métodos"; "get;post"))
$hostWS .
start( xml-ph-0
gerir CORS através de definições de base de dados
Estão disponíveis novas definições no separador Definições > Web > Opções (II):
Basta adicionar os nomes de domínio permitidos e os métodos disponíveis. Quando o servidor for iniciado a seguir, eles serão utilizados automaticamente.