2012-07-02 16 views
5

Wie liest man eine Datei im aktuellen Verzeichnis mit JQuery.getJSON()?JQuery.getJSON() Lesen einer lokalen Datei

Ich versuche, etwas einfach (mit meiner data.json-Datei im selben Verzeichnis wie meine HTML-Datei):

$.getJSON("./data.json") 

und ich bekomme die Fehlermeldung:

XMLHttpRequest cannot load file:///C:/Projects/test/data.json. Origin null is not allowed by Access-Control-Allow-Origin.

Ich habe versuchte alle möglichen Kombinationen von Pfad, aber es scheint nicht zu funktionieren ...

EDIT: Ich benutze Chrome, aber ich würde gerne in allen Browsern arbeiten ...

+0

Welchen Browser benutzen Sie? – ephemient

Antwort

9

Wenn Sie Google Chrome verwenden, ist es beabsichtigt, dass AJAX auf file:/// Pfade nie funktioniert.

crbug/40787

1

Es geht nicht um Pfad

Es ist ein Cross-Domain-Problem

Sie Grundsätzlich benötigen einen Rückruf in Ihrer URL hinzuzufügen, so dass jQuery automatisch den Anforderungstyp von json ändern kann JSONP diese

anzeigen post für Detail

2

Dies liegt daran, dass Sie Ihre Web-Dateien direkt von der Festplatte ausgeführt wird. Es gibt verschiedene Fallstricke, von denen Sie eine gefunden haben. Idealerweise möchten Sie in einer Serverumgebung arbeiten, sogar lokal. Sie können einen (kostenlosen) lokalen LAMP-Server wie XAMPP installieren. Dann können Sie lokalen AJAX verwenden.

0

Eine Alternative zur Installation eines lokalen LAMP-Servers ist die Verwendung des einfachen HTTP-Servers von Python. Solange Sie Python installiert haben, öffnen Sie einfach bash und verwenden Sie den Python-Interpreter.

für Python 2 Verwendung:

python -m SimpleHTTPServer 8000 

für Python 3 verwenden:

python -m http.server 8000 

Dann brauchen nur mit Ihrem Browser auf localhost: 8000, und Sie sollten keine Probleme haben Zugriff auf die Datei, wenn es im selben Verzeichnis.

+0

Obwohl 8000 ist Standard-Port keine Notwendigkeit, es zu erwähnen, wenn Sie den Port nicht ändern möchten. – Gahan