如何使用JQuery JSON调用捕获JSON解析错误?

时间:2010-03-08 19:06:51

标签: javascript json jquery

我正在对服务器进行AJAX调用,有时会返回不可解析的JSON。服务器不在我的控制之下,所以我无法解决这个问题。

function eventFunction(evt) {
    $('div#status_bar').show();
    $.ajax({
        url: 'http://buggyserver.com/api/',
        type: 'GET',
        data: { 'mode': 'json', 'q': 'get/data' },
        dataType: 'json',
        success: updateForm
    });
}

function updateForm(returned, status) {
    if (status == 'success') {
        //Update the form here
    }
    $('div#status_bar').hide();
}

当返回不可解析的JSON时,不会调用updateForm函数。

我如何在客户端确保调用updateForm函数的最后一行来隐藏状态栏?我已经尝试将try { } catch {}子句放在AJAX调用和updateForm周围。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

function eventFunction(evt) {
    $('div#status_bar').show();
    $.ajax({
        url: 'http://buggyserver.com/api/',
        type: 'GET',
        data: { 'mode': 'json', 'q': 'get/data' },
        dataType: 'json',
        success: updateForm,
        complete: function() { $('div#status_bar').hide(); }
    });
}

function updateForm(returned) {
   //Update the form here
}

complete回调在成功后触发,无论是否成功。