2010-01-19 119 views
0
$.getJSON("http://yoolk.dev:3012/categories?callback=?", function(data) { 
    console.log(data) 
} 
); 

我有上面的代碼以獲取json數據,但回調函數似乎不工作。任何人都可以幫忙謝謝jQuery getJSON問題

+1

什麼生活在'http://yoolk.dev:3012/categories'並且它是否支持回調? – 2010-01-19 08:02:41

+0

不,它不。我無法在Firefox中的控制檯中看到數據。我不知道爲什麼。任何想法? – Sinal 2010-01-19 08:20:09

回答

1

如果請求失敗,您的回調將不會被調用。你可以使用類似下面的例子來檢測失敗。 jQuery將不會調用任何錯誤處理的jsonp失敗的情況下......所以,一個可以實現檢查結果的計時器...

這裏,task.run做Ajax請求,並checkStatus功能檢查結果。

var task = { 
    complete: 0, 
    timeout: 5000, 

    run: function() { 
    $.ajax({ 
     type: 'get', 
     url: 'http://www.yahoo.com', 
     dataType: 'jsonp', 
     timeout: this.timeout, 
     complete: function(req, status) { 
     this.complete = 1 
     if (status == "success") { 
      alert('Success'); 
     } else { 
      alert('Error: ' + status) 
     } 
     } 
    }) 

    var o = this 
    setTimeout(function() {o.checkStatus()}, this.timeout + 1000) 
    }, 

    checkStatus: function() { 
    if (!this.complete) { 
     alert('Error: Request did not complete') 
    } 
    } 
} 

task.run() 
+0

這是最好的解決方案是什麼? – Sinal 2010-01-19 08:20:42

+0

你可以用上面的方法來檢查狀態(5秒後會超時)。要找出請求失敗的原因,請檢查Firebug中的Net選項卡(選擇「All」作爲請求類型)並查看輸入/輸出數據 – jspcal 2010-01-19 08:40:57