2012-07-02 18 views
5

Jak czytasz plik w bieżącym katalogu przy użyciu JQuery.getJSON()?JQuery.getJSON() czyta plik lokalny

Próbuję coś prostego (z mojego pliku data.json w tym samym katalogu, co moim pliku HTML):

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

i pojawia się błąd:

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

mam próbowałem różnych kombinacji ścieżek, ale to nie działa ...

EDYCJA: Korzystam z Chrome, ale chcę pracować we wszystkich przeglądarkach ...

+0

Z której przeglądarki korzystasz? – ephemient

Odpowiedz

9

Jeśli korzystasz z Google Chrome, celowe jest, aby ścieżki AJAX na file:/// nigdy nie działały.

crbug/40787

1

Nie chodzi o ścieżki

to problem cross-domain

Zasadniczo trzeba dodać wywołania zwrotnego w adresie URL, tak że jQuery może automatycznie zmienić typ żądania od JSON do jsonp

Zobacz to post dla szczegółów

2

To dlatego, że używasz plików internetowych bezpośrednio z dysku twardego. W tym są różne pułapki, z których jedna znalazłaś. Idealnie chcesz pracować w środowisku serwera, nawet lokalnie. Można zainstalować (bezpłatny) lokalny serwer LAMP, taki jak XAMPP. Następnie będziesz mógł korzystać z lokalnej AJAX.

0

Alternatywą dla instalacji lokalnego serwera LAMP jest użycie prostego serwera HTTP Pythona. Dopóki masz zainstalowany Python, po prostu otwórz bash i użyj interpretera python.

dla Pythona 2 użytku:

python -m SimpleHTTPServer 8000 

dla Pythona 3 użytku:

python -m http.server 8000 

Następnie wystarczy wskazać przeglądarkę na localhost: 8000 i nie powinien mieć żadnych problemów z uzyskaniem dostępu do pliku, jeśli jest to w tym samym katalogu.

+0

chociaż 8000 jest domyślnym portem, nie trzeba go wspominać, jeśli nie chcesz zmieniać portu. – Gahan

Powiązane problemy