2011-10-11 130 views
1

我已經在我的代碼得到這個:jQuery的.getJSON()回調函數不執行

.getJSON("http://myUrl.com", function(data){ alert("callback being called");}); 

用我的服務器端代碼一個破發點,我可以看到的JSON流從URL返回。在Chrome中進行瀏覽我從來沒有看到警報被調用(或其中的任何其他代碼)。當我使用chrome開發人員工具查看網絡流量時,我看到正在對myURl進行調用(並且我可以將響應看作我期待的jSON字符串)。它看起來回調函數永遠不會執行。

任何人都知道爲什麼它不會執行?

+2

我假設你的意思是'$ .getJSON'而不是'.getJSON'? – Alex

+1

你的json有效嗎? http://stackoverflow.com/questions/770381/callback-function-doesnt-work-when-using-getjson-function-in-jquery – jrummell

+0

您的代碼是否在不同的域上運行到'http:// myUrl.com' ? – Eric

回答

0

試試下面的第一,然後用你的網址替換

<script type="text/javascript"> 
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", 
    function (data) { alert("callback being called");} 
    ); 
</script> 
1

我有幾個問題,其中大部分通過在這裏深入挖掘得到解決(我的不好,但也許這可以幫助其他人)。

  1. 我沒有返回正確的內容類型(應用/ JSON)
  2. 我的JSON沒有被正確解析(我不得不在端部分號和額外逗號在數組聲明http://paulisageek.com/json_validator/的端部幫驗證我的JSON。
  3. 使用與錯誤綁定。阿賈克斯()方法,還幫我麻煩拍我的問題。

令人沮喪,因爲沒有異常/錯誤被扔它只是拒絕調用回調。