2010-10-09 94 views
19

我正在編寫一個Web應用程序(實際上,它最終將成爲OS X Dashboard Widget,但我決定首先將它作爲簡單網頁進行原型設計),需要加載一些從本地JSON文件初始化數據。我的代碼如下所示:如何使用JavaScript加載本地JSON文件

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

函數從HTML文件的BODY標記中的onLoad()事件中調用。現在,根據我在調試時看到的函數執行,但onReadytStateChange事件處理程序永遠不會被調用。

我該怎麼辦?我認爲使用XMLHttpRequest訪問本地文件有點奇怪,但是我看到的處理這個問題的新教程似乎表明它應該有效(我見過的文檔中有99%從遠程服務器加載JSON,而不是從本地文件加載)。

我使用的是Firefox 3.6.10的測試,但我也有嘗試的Safari 4

+2

這就是爲什麼我推了一個轉讓條款的期權在2005年之前,所有的各種編程語言JSON客戶向特設標準化衝到前面一個JSON對象聲明回:HTTP: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm – 2010-10-09 15:56:55

+0

你想要application/json,但是如果這個文件是本地的,它不會有那個MIME類型。嘗試評論覆蓋出 – mplungjan 2010-10-09 15:58:45

回答

相關問題