2010-10-09 22 views
19

Bir web uygulaması yazıyorum (aslında, aslında bir OS X Dashboard widget'ı olacak, ancak önce basit bir web sayfası olarak prototiplemeye karar verdim) yerel bir JSON dosyasından verileri başlatılıyor. Benim kod şöyle görünür:Yerel JSON dosyaları Javascript'e nasıl yüklenir

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); 
} 

fonksiyon HTML dosyasının BODY etiketinin bir onLoad() olaydan denilen olsun. Şimdi, hata ayıklama yaparken gördüğüm kadarıyla, işlev çalıştırılır, ancak onReadytStateChange olay işleyicisi hiçbir zaman aranmaz.

Ne yapmalıyım? Yerel bir dosyaya erişmek için bir XMLHttpRequest kullanmanın biraz garip olduğunu düşündüm, ancak bu sorunla başa çıkmakta olduğum yeni dersler işe yarayacak gibi görünüyor (doktorların% 99'u nasıl konuştuğunu anlatıyor) Yerel bir dosyadan değil, uzak bir sunucudan JSON yüklemek için).

Ben Firefox 3.6.10 kullanarak test ediyorum, ama ben de 4.

+2

Bütün çeşitli programlama dili JSON istemcileri bir ad hoc standardizasyon doğru koştu önce 2005 yılında tekrar bir JSON nesnesi ilanından önce gerçekleşeceği bir atama fıkra seçeneği için bastıran nedeni budur: http: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm –

+0

Uygulama/json istersiniz, ancak dosya yerel ise, bu türde bir mime türü olmaz . – mplungjan

cevap

8

onreadystatechange Tesiste büyük harfleri Safari ile denedim. Bkz: Biz uzantısı .json ekleyip MIMETYPE application\json sürece MDC XMLHttpRequest

+0

geçersiz kılmayı yorumlamayı deneyin. Bu doğru – jbeard4

İlgili konular