2010-02-11 56 views
0

有一個簡單的JSON解析的問題,想知道如果有人可以迅速發現此語法中的任何錯誤?JSON不解析使用.getJSON

function getFavs() { 
    $.getJSON('http://www.example.com/scripts/test.json', function(data) { 
     $('#main-content').html(data.foo); 
    }); 
} 

JSON文件如下:

{ 
"foo": "The quick brown fox jumps over the lazy dog.", 
"bar": "ABCDEFG", 
"baz": [ 
    52, 
    97 
    ] 
} 

出於某種原因,它不喜歡 'data.foo' 位。我可以使用靜態數據,但絕對不是讀取/解析JSON數據。不確定它是否與我使用的URL有關? (該文件已經使用JSONLint驗證)

感謝任何線索。

+3

URL是否與調用腳本具有相同的域? – bdl 2010-02-11 06:14:40

回答

0

事情看起來不錯,但檢查函數實際上是否被調用。如果您有Firebug,請嘗試通過逐步運行代碼來調試代碼。如果你不在不同的地方添加一些alert("this code was run");(在ajax之前,在ajax和回調函數之後)。

+0

好的調用,它肯定會跳到data.foo上(我在'ajax之前'嘗試'''ajax'警報之後,並且它沒有返回'ajax'之後的返回值 GET請求返回200OK,但是記住hmmm – gleddy 2010-02-11 06:30:17

+1

ajax是異步的,所以如果沒有調用'$ .getJSON();'後面的警告,那麼你在ajax代碼中有一個語法錯誤,警告應該在第一個之後被調用,並且在一個在回調函數 – Marius 2010-02-11 07:52:47

1

這個問題已解決,似乎是在本地運行,並呼叫一個活動的服務器將是跨域我的身影。現在運行MAMP,它的工作原理應該如上所述。

謝謝!

+1

這是正確的,因此我的原始問題。任何Ajax請求(像這樣)必須在同一個域。 – bdl 2010-02-11 07:00:47