¿Alguna vez ha creado una solicitud de datos HTTP sólo para ser golpeado por un error rojo «el acceso a la solicitud HTML ha sido bloqueado por la política cors» ?
Cuando su sitio está en el mismo dominio que el servidor del servicio web, no hay ningún problema. Sin embargo, este no es el caso cuando se realiza una solicitud de origen cruzado. El acceso se deniega debido a que la seguridad del navegador impide las peticiones HTTP a otro dominio. ¿El resultado? Un error de política CORS.
Para ayudarle a permitir explícitamente ciertas peticiones de origen cruzado en su servidor, 4D soporta ahora el protocolo CORS. Acceder a los datos con peticiones de origen cruzado es ahora más fácil.
El protocolo CORS impide que las páginas web puedan realizar peticiones a dominios distintos del suyo. Pero a veces, usted puede necesitar permitir que otros sitios hagan peticiones de datos HTTP a su servidor. Afortunadamente, 4D proporciona dos maneras de definir las reglas CORS y permitir explícitamente ciertas peticiones de origen cruzado:
- a través de la programación, o
- a través de la configuración de la base de datos.
gestionar cors mediante programación
Puede habilitar CORS con dos comandos:
//CORS Domains Settings
$settings:=New collection
$settings .push(New object("host"; "127.0.0.1:8888"; "métodos"; "get;put;post"))
$settings .push(New object("host"; "https://blog.4d.com/"; "métodos"; "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
Gestionar el CORS a través de la configuración de la base de datos
La nueva configuración está disponible en la pestaña Configuración > Web > Opciones (II):
Sólo hay que añadir los nombres de dominio permitidos y los métodos disponibles. La próxima vez que se inicie el servidor, se utilizarán automáticamente.