Unterstützung von Cross-Origin Resource Sharing (CORS)

Haben Sie schon einmal eine HTTP-Datenanforderung erstellt und dann eine rote Fehlermeldung erhalten , dass der Zugriff auf die HTML-Anforderung durch die Cors-Richtlinie blockiert wurde ?

Wenn sich Ihre Website in derselben Domäne wie der Webdienstserver befindet, gibt es kein Problem. Dies ist jedoch nicht der Fall, wenn Sie eine herkunftsübergreifende Anfrage durchführen. Der Zugriff wird verweigert, weil die Browsersicherheit HTTP-Anfragen an eine andere Domäne verhindert. Das Ergebnis? Ein Fehler in der CORS-Richtlinie.

Um Ihnen zu helfen, bestimmte Cross-Origin-Anfragen auf Ihrem Server explizit zu erlauben, unterstützt 4D jetzt das CORS-Protokoll. Der Zugriff auf Daten mit herkunftsübergreifenden Anfragen ist jetzt einfacher geworden!

Das CORS-Protokoll verhindert, dass Webseiten Anfragen an andere Domains als die eigene stellen können. Aber manchmal müssen Sie anderen Sites erlauben, HTTP-Datenanfragen an Ihren Server zu stellen. Glücklicherweise bietet 4D zwei Möglichkeiten, die CORS-Regeln zu definieren und bestimmte Cross-Origin-Anfragen explizit zu erlauben:

  • über die Programmierung, oder
  • über Datenbankeinstellungen.

CORS über die Programmierung verwalten

Sie können CORS mit zwei Befehlen aktivieren:

//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

CORS über die Datenbankeinstellungen verwalten

Neue Einstellungen sind auf der Registerkarte Einstellungen > Web > Optionen (II) verfügbar:

Fügen Sie einfach die erlaubten Domainnamen und verfügbaren Methoden hinzu. Wenn der Server das nächste Mal gestartet wird, werden sie automatisch verwendet.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.