我从服务器获取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错误方面分开吗? 目前我得到:无效的JSON:SQLSTATE [42S02]:未找到基表或视图:1146表'simover.simulation'不存在{} 我可以自定义jquery抛出的消息吗? 谢谢阿曼。
修改
可以使用 xhr.responceTxt 代替 thrownError 。
答案 0 :(得分:5)
目前您的错误回调正在调用,因为您的服务器响应中有错误,而不是因为您的服务器遇到问题。 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"
}