Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, der zusätzliche HTTP-Header verwendet, um einem Browser mitzuteilen, dass eine Webanwendung, die auf einem Ursprungsort (Domäne) läuft, die Berechtigung hat, auf ausgewählte Ressourcen von einem Server mit einem anderen Ursprungsort zuzugreifen. Eine Webanwendung stellt eine HTTP-Anfrage mit unterschiedlicher Herkunft, wenn sie eine Ressource anfordert, die einen anderen Ursprung (Domäne, Protokoll und Port) als ihren eigenen Ursprung hat.
Damit externe WMS in einem Web-GIS Client dynamisch eingebunden werden können, ist das Setzen von "CORS-Headern" nötig. Das gilt z.B. für GetCapabilities-Requests, da sie XML-Text und kein Bild zurück liefern.
Es ist deshalb wichtig, dass Organisationen, die öffentliche WMS zur Verfügung stellen, die benötigten CORS-Header ausliefern, damit die WMS auch im Browser genutzt werden können.
WMS GetCapabilities oder GetFeatureInfo-Requests werden von aktuellen Browsern mit einer Meldung "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ..." zurückgewiesen.
Damit Capabilities-Abfragen von beliebigen Domains aus möglich sind, muss der HTTP-Header Access-Control-Allow-Origin "*" mitgeliefert werden.
Konfigurationen für die verbreiteten Webserver Apache und nginx
Apache2:
Innheralb von <Directory>, <Location>, <Files> oder <VirtualHost>:
Header set Access-Control-Allow-Origin "*"
nginx:
location / {
add_header 'Access-Control-Allow-Origin' "*";
}
Weiterführende Infos:
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS