2012-06-07 77 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"); 
}