2010-10-09 18 views
19

Piszę aplikację internetową (cóż, w rzeczywistości będzie to widżet Dashboard OS X, ale zdecydowałem się najpierw go prototypować jako prostą stronę), który musi załadować niektóre inicjowanie danych z lokalnego pliku JSON. Mój kod wygląda następująco:Jak załadować lokalne pliki JSON w JavaScript

function loadDatos() { 
    var xobj = new XMLHttpRequest(); 
    xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'datos.json', true); 
    xobj.onReadyStateChange = function() { 
     if (xobj.readyState == 4) { 
      var jsonTexto = xobj.responseText; 
      ProcessTheData(jsonTexto); 
     } 
    } 
    xobj.send(null); 
} 

Funkcja sprawdzony z onLoad() wydarzenia w znaczniku BODY pliku HTML jest. Teraz, z tego, co widzę podczas debugowania, funkcja jest wykonywana, ale procedura obsługi zdarzeń onReadytStateChange nigdy nie jest wywoływana.

Co należy zrobić? Pomyślałem, że trochę dziwne jest użycie XMLHttpRequest w celu uzyskania dostępu do pliku lokalnego, ale nowe samouczki, które widziałem, które dotyczą tego problemu, wydają się sugerować, że powinien działać (99% dokumentów, które widziałem, mówi o tym, jak załadować JSON ze zdalnego serwera, a nie z lokalnego pliku).

jestem testowania za pomocą Firefoksa 3.6.10, ale Próbowałem zostały również z Safari 4.

+2

Dlatego właśnie pchał dla opcji klauzuli przypisania poprzedzające deklarację obiektu JSON z powrotem w 2005 roku, zanim wszystkie różne klienci JSON język programowania rzucili się w kierunku standaryzacji ad hoc: http: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm –

+0

Chcesz aplikacji/json, ale jeśli plik jest lokalny, nie będzie tego typu MIME . Spróbuj skomentować zastąpienie – mplungjan

Odpowiedz

Powiązane problemy