【问题标题】:Error Handling in Parsing JSON by JQueryJQuery解析JSON的错误处理
【发布时间】:2012-06-11 08:45:02
【问题描述】:

好的,我有以下代码,它使用 jquery 的 $.parseJSON 从 ajax 响应中解析 JSON

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

现在我想优雅地覆盖任何可能的错误,我尝试进行一些错误处理,通常是try and catch,现在这段代码不起作用。我故意做了一些格式错误的 JSON 并将其传递给$.parseJSON,但它并没有真正起作用。现在我的问题是如何优雅地处理这个错误

【问题讨论】:

  • 那个should work fine(我在Chrome中试过)。实际发生了什么?
  • 它并没有真正起作用。我的萤火虫仍然捕捉到错误。如果我关闭了萤火虫,它会跳过捕获
  • @JamesAllardice 在我的情况下它并没有真正起作用..当然它不是我真正的代码,但它是我最接近的代码
  • 尝试更具体,而不仅仅是“不起作用”。 “不起作用”并没有真正的意义。

标签: javascript jquery json parsing error-handling


【解决方案1】:

代码很好,它应该可以工作,如果没有尝试用 'jQuery' 代替 '$'。例如

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

【讨论】:

    【解决方案2】:

    来自jQuery API documentation

    在 jQuery 1.9 之前,如果 $.parseJSON 被传递一个空字符串、null 或未定义,即使它们不是有效的 JSON,它也会返回 null 而不是抛出错误。

    您使用的 jQuery 版本是否早于 1.9?

    【讨论】:

      【解决方案3】:

      我建议在 jquery ajax 错误回调中处理错误。如果将 dataType 指定为 json,如果 json 字符串的格式不正确,您应该以 error 回调而不是 success 结束

      【讨论】:

        猜你喜欢
        • 2012-12-13
        • 1970-01-01
        • 1970-01-01
        • 2014-08-28
        • 1970-01-01
        • 1970-01-01
        • 2015-03-12
        • 1970-01-01
        • 2011-03-11
        相关资源
        最近更新 更多