Как отследить ошибки синтаксического анализа JSON с помощью вызовов JQuery JSON? - PullRequest
0 голосов
/ 08 марта 2010

Я делаю 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 Ответ

1 голос
/ 08 марта 2010

Вы можете сделать это:

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 срабатывает после успеха, независимо от того, был он успешным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...