2013-03-29 105 views
1

我對JavaScript很陌生,所以我需要一點幫助! 我需要從我的本地主機讀取「.json」文件,但它不起作用!是從javascript本地主機中讀取json文件

該文件的內容如下:

[ 
{"source":"tw1", 
    "text":"fubar"}, 

{"source":"tw2", 
    "text":"foo"} 
] 

我設置了該命令的本地主機:蟒蛇-m http.server 8888 &,這是張貼在這裏D3.js

我寫了下面的javascript代碼:

<script type="text/javascript" src="lib/jquery-1.9.1.js"></script> 
    <script> 
    $(document).ready(
     $.getJSON("http://localhost/test.json", function(data){ 
      document.write(data); 

    }); 
    </script> 
+1

什麼問題? – Amberlamps

+0

請參閱http://stackoverflow.com/questions/7346563/loading-local-json-file ..它可能會幫助你 –

+0

我同意@Amberlamps。請編輯問題並顯示您收到的錯誤。 – Jess

回答

2

如果你打開你的服務器端口8888,那麼你就必須要求它在該端口上:

$.getJSON("http://localhost:8888/test.json", function(data){ 

但要注意的是,服務器必須設correct CORS headers如果你想能夠通過cross domain restrictions

第三個問題是您的代碼無法編譯:您錯過了});。壓痕不對稱,很明顯:

$(document).ready(
    $.getJSON("http://localhost:8888/test.json", function(data){ 
     document.write(data); 
    }); // <=== was missing 
}); 

第四個問題是,你wan't使用document.write一旦頁面加載。您必須使用DOM操作方法編寫,如$(document.body).append($('<pre>'+data+'</pre>'));

+0

感謝您的快速回復,'});'缺少,這是否''標籤? – dot

+0

@dot我編輯過。您應該嘗試習慣在代碼中看到對稱性。這就是我發現最明顯的錯誤的方式。 –

+0

如何在這個簡單的服務器上設置正確的** CORS頭文件**,提出這個愚蠢的問題! – dot

1

我認爲問題在於您試圖訪問計算機中的json文件,將您的json文件上傳到在線服務器並訪問它,而不是那個一臺你的電腦。