2010-06-17 47 views
0

返回我有以下代碼的jQuery的getJSON問題時請求不作爲JSON

jQuery.getJSON(encodeURI(strUrl), {address:address,state:state, zip:zip},function(data){ 
    alert('HELLO World!'); 
}); 

如果由於某種原因,strUrl返回一個字符串,這不是JSON格式的回調函數不會被調用。有沒有辦法知道響應是以json格式還是在帖子中出錯?

+0

我真的不認爲,評估(從而執行)你不能相信的結果是一個好主意(你甚至不知道,如果它在語法上是正確的)!它可以做任何事情。 – 2010-06-17 17:22:14

+0

@chris_l當然,但會發生一些錯誤,並且預期結果的格式不正確。你應該防止這種情況發生,這是正確的,但存在錯誤。請記住,「理論上講,實踐和理論是一樣的;實際上,它們不是」。你應該儘可能覆蓋你所有的基地。 – Seb 2010-06-17 17:23:38

+0

@Seb完全同意,因爲我對此態度完全一致!但在這種情況下,聽起來好像OP *可能僅僅是接受任何語法正確的JavaScript(即使內容是惡意的)。不幸的是''eval'不僅僅需要JSON數據,而是任何JavaScript。所以我認爲,這個警告是有道理的。 – 2010-06-17 17:31:04

回答

1

jQuery.getJSON不允許您定義錯​​誤回調函數。

您需要改爲使用jQuery.ajax,將dataType設置爲json,並將其餘配置變量設置爲getJSON默認定義的值。

+0

是的,我認爲這是唯一的方法。我只是得到結果,檢查它的格式是否正確並繼續。謝謝 – Bathan 2010-06-17 17:38:21