Tipp der Woche
11.08.2022, 12:29 Uhr
Wenn Daten von einer anderen Domain kommen sollen
Wer in Svelte eine Oberfläche für eine WebApp bauen will, ist unter Umständen darauf angewiesen, dass Daten über ein REST API von einem anderen Server kommen. Aus dem JavaScript-Code der Seite gelingt das nicht, aber es gibt eine einfache Lösung.
CORS steht für Cross-Origin-Resource-Sharing, also das Laden von Inhalten anderer Domänen als der eigenen. Zwar lassen sich beispielsweise Bilder über das img-Tag einer HTML-Seite von anderen Servern laden. Aus dem JavaScript-Code der Seite gelingt das nicht. Hier meldet der Browser eine Verletzung der CORS-Regeln und lädt die Daten nicht.
Wer aber etwa in Svelte eine Oberfläche für eine WebApp bauen will, ist unter Umständen darauf angewiesen, dass Daten über ein REST API von einem anderen Server kommen. Der Ansatzpunkt ist aber nicht der Webbrowser, also das Frontend, sondern das Backend. Solange Sie Zugriff auf den Server haben, können Sie den Zugriff gewähren. Tragen Sie dafür im Webserver als zurückgelieferten Header
Access-Control-Allow-Origin: *
ein. Der Stern bedeutet, dass jede Domäne erlaubt ist und diese Seite beziehungsweise die Daten in jedem Browser geladen werden können. Sie können das einschränken, indem Sie statt des Sterns nur Ihre Domäne eintragen, also etwa
Access-Control-Allow-Origin: https://www.ihre-domaene.ddd
Unter PHP würde das so aussehen:
<?php
header("Access-Control-Allow-Origin: *");
Mit diesem Header klappt auch der Zugriff von JavaScript aus auf die Daten der Seite.