2012-06-07 96 views
4

好吧,我有這個下面的代碼從使用jQuery錯誤的jQuery的JSON解析處理

try{ 
    var indata = $.parseJSON(rsp); 
}catch(err){ 
    alert("an error occured"); 
} 

的$ .parseJSON現在,當我想平穩地覆蓋任何可能的錯誤,我試圖做一個Ajax響應JSON解析一些錯誤處理通常是try and catch現在這個代碼不起作用。我故意做一些格式不正確的JSON並將其傳遞給$.parseJSON,但它並不真正起作用。現在我的問題是我如何能夠優雅地處理這個錯誤

+0

[應該可以正常工作](http://jsfiddle.net/TCEYy/1/)(我在Chrome中試過)。究竟發生了什麼? –

+0

它並沒有真正的工作。我的螢火蟲仍然捕捉到錯誤。如果我關掉了螢火蟲,它會跳過catch –

+0

@JamesAllardice在我的情況下它並不真正工作..當然它不是真正的我的真實代碼,但它是我最接近的代碼 –

回答

7

我會建議處理jquery ajax錯誤回調中的錯誤。如果指定dataType爲JSON,你應該在error回調,而不是success結束,如果JSON字符串格式不正確

0

jQuery API documentation

此前的jQuery 1.9,$ .parseJSON返回而不是在傳遞空字符串,null或undefined時拋出錯誤,即使這些字符串不是有效的JSON。

您是否正在使用1.9以前的jQuery版本?

1

代碼是好的,它應該是工作,如果不嘗試'jQuery'來代替'$'。例如

try{ 
    var indata = jQuery.parseJSON(rsp); 
}catch(err){ 
    alert("an error occured"); 
}