Warum braucht man CORS?
Die modernen Browser besitzen eine Funktionalität um das Abgreifen von Informationen aus Login-Sessions fremder Webseiten zu verhindern. Dies wird umgesetzt indem per AJAX nur Daten von der Domain nachgeladen werden dürfen, auf der man sich gerade befindet. Besitzt man auf einer Seite keinen serverseitigen Status (Login-Session, etc.) ist diese Maßnahme unnötig, weil es auf solchen Seiten ja keine privaten/nicht öffentlichen Informationen gibt. Im Gegenteil: Es ist teilweise sogar hilfreich von fremden Domains auf die Inhalte zugreifen zu können und sie weiterzuverwenden.
Genau so ist es auch mit der status-page. Will man diese auch von anderen Domains aus lesen, muss im HTTP-Header das
Access-Control-Allow-Origin-Feld auf
* gesetzt werden.
Wie aktiviere ich CORS für die status-page?
Nach dem Kompilieren
Man kann durch eine kleine Änderung in der Datei
/lib/gluon/status-page/www/cgi-bin/status CORS auf den Routern einrichten:
io.write("Access-Control-Allow-Origin: *\n") ---- Diese Zeile muss hinzugefügt werden.
io.write("Content-type: text/html\n\n")
io.write("\n")
io.write("")
io.write("")
Vor dem Kompilieren
Diese Änderung lässt sich auch vor dem Kompilieren vornehmen.
Die zu bearbeitende Datei findet sich dann unter
"gluon-repo-ordner"/package/gluon-status-page/files/lib/gluon/status-page/www/cgi-bin/status
Die Zeile die hinzugefügt werden muss bleibt die gleiche.
Weitere Infos zu dem Thema finden sich unter
http://enable-cors.org