Rolf B: Parsen von json-Dateien

Beitrag lesen

Hallo Lowterm,

doch, klar, das geht. Du kannst an getJSON eine beliebige URL mitgeben, absolut oder relativ.

Aber es muss erlaubt sein. Wenn die JSON-Datei nicht auf dem gleichen Server liegt wie deine HTML Seite[1], dann findet ein Cross-Origin Zugriff statt, und der geht ohne Access-Control-Allow-Origin Header auf der JSON-Datei schief. Und zwar grundsätzlich. Egal mit welchem Vehikel. D.h. derjenige, der die JSON-Datei hostet, muss deiner Domain erlauben, darauf zuzugreifen.

Bei Scripten und Bildern ist das anders. Die darf man von überallher einbinden. Daten kann man nicht einfach so laden.

Wenn deine Seite auf http://example.org liegt und die JSON-Datei anderswo, muss der fremde Server einen Header mitsenden, der den Zugriff gestattet. Entweder so:

Access-Control-Allow-Origin: http://example.org

oder für die ganze Welt

Access-Control-Allow-Origin: *

Und dann kommt natürlich noch hinzu, dass Du von einer HTML Seite, die über https geladen wird, keine Daten von http-Adressen laden darfst.

Alles nicht einfach, aber es dient der Datensicherheit.

Rolf

--
sumpsi - posui - obstruxi

  1. Was ungenau formuliert ist. Korrekt wäre: nicht vom gleichen Origin kommt. Der Origin ist die Kombination aus Schema (http oder https), Domain (www.example.com) und Port. Weicht eins von den dreien ab, liegt nicht mehr der gleiche Origin vor. Ob die beiden Origins auf den gleichen Server zeigen oder auf zwei verschiedene, ist dabei egal. ↩︎