Browserkommunikation über Domaingrenzen hinweg
Raus aus der Sandbox: Das World Wide Web Consortium hat mit CORS eine Spezifikation freigegeben, die Webclient-Anfragen bei mehreren Domains erlaubt.
- Henning Behme
Mit einem neuen Standard, dem Cross-Origin Resource Sharing (CORS), definiert das World Wide Web Consortium (W3C) nach acht Jahren Diskussion, wie Browser über Domaingrenzen hinweg kommunizieren können – was die Same-Origin-Policy normalerweise verbietet. Mit dem XMLHttpRequest
-Objekt können Autoren von Dokumenten (beziehungsweise Webmaster) auf meine-beispieldomain.de erlauben, dass Dokumente von eine-andere-beispieldomain.de sie einbinden. Dazu muss allerdings meine-beispieldomain.de den Zugriff entweder für alle anderen Domains ('*') oder für spezifische im Header freigeben:
Access-Control-Allow-Origin: http://eine-andere-beispieldomain.de
Andere Header definieren, welche Methoden für eine Anfrage erlaubt sind (Access-Control-Allow-Methods
) oder wie lange Vorabanfragen, sogenannte Preflight Requests, im Cache verbleiben sollen (Access-Control-Max-Age
). Monsur Hossain hat bei HTML5Rocks ein ausführliches Besipiel zusammengestellt. Die aktuellen Ausgaben der Browser beherrschen CORS schon, wie die Übersicht bei Caniuse.com zeigt – Internet Explorer vollständig ab Version 10.
Update, 20.1.2014, 10:35 Uhr: In der ursprünglichen Version war die Erlaubnis zum Zugriff falsch herum dargestellt. (hb)