Apoyo a la compartición de recursos entre orígenes (CORS)

Traducido automáticamente de Deepl

¿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.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.