0

我正在从我的服务器获取 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而不是throwedError

4

1 回答 1

5

目前,您的错误回调被调用是因为您的服务器响应中有错误,而不是因为您的服务器遇到问题。Javascript 引擎会抛出错误,因为它希望将 JSON 数据发回,但它却得到了一个普通的 string Base table or view not found...,这不是一个有效的 JSON 字符串。

我建议您在服务器上捕获这些错误,例如使用tryandcatch阻止并在发生错误时发回某种特殊响应。像这样:

{
    "ok": false, 
    "error_key": "database_error", 
    "error_text": "Base table or view not found: 1146 Table 'simover.simulation' doesn't exist"
}
于 2010-08-05T12:51:19.530 回答