Ловля ошибок со стороны сервера - PullRequest
0 голосов
/ 05 августа 2010

Я получаю данные json с моего сервера, чтобы показать их в виде таблицы.

$('#queryFrom').ajaxForm({                    
                dataType:  'json',                                        
                beforeSubmit:  showRequest,  // pre-submit callback
                success:   processJson,                    
                error: function (xhr, ajaxOptions, thrownError){
                    $('#queryResult').html('<div class="ui-corner-all ui-state-error"><p><span class="ui-icon ui-icon-alert"></span>'+thrownError+'</p></div>');
                    $('#queryResult').show("slow");
                }
            });

Могу ли я как-то отделить ошибки mysql от стороны json / ajax erros?В настоящее время я получаю: Неверный JSON: SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица 'simover.simulation' не существует {} Можно ли настроить сообщения, выдаваемые jquery?спасибо Арман.

РЕДАКТИРОВАТЬ

можно использовать xhr.responceTxt вместо thrownError .

1 Ответ

5 голосов
/ 05 августа 2010

В настоящее время вызывается ваш обратный вызов из-за ошибки в ответе вашего сервера, а не из-за проблемы с сервером. Механизм Javascript выдает ошибку, поскольку ожидает, что данные JSON будут отправлены обратно, но вместо этого он получает простую строку Base table or view not found..., которая не является допустимой строкой JSON.

Я бы посоветовал вам отлавливать эти ошибки на сервере, например, используя блоки try и catch и отправляя какой-то специальный ответ в случае возникновения ошибки. Как это:

{
    "ok": false, 
    "error_key": "database_error", 
    "error_text": "Base table or view not found: 1146 Table 'simover.simulation' doesn't exist"
}
...