php - 从服务器端捕获错误

标签 php jquery mysql json mysql-error-1146

我正在从我的服务器获取 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]:未找到基表或 View :1146 表“simover.simulation”不存在{} 我可以自定义 jquery 抛出的消息吗? 谢谢阿尔曼。

编辑

可以使用 xhr.responceTxt 代替 thrownError

最佳答案

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

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

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

关于php - 从服务器端捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414742/

相关文章:

php - php系统中的python命令()

java - 需要帮助将一些 Java 加密转换为 PHP

php - 计算特定 ID 的行数

mysql - 如何连接2个不返回单个值的suqueries? MySQL

mysql - 选择给定日期范围内的所有月份,包括具有 0 值的月份

php - Docker 暴露端口疯狂

php - Web 应用程序性能改进

javascript - $.get jquery 函数返回完整的 html 页面而不是数据中的 json

jquery - 使用 JQuery 和 RadioButtons 隐藏/显示表行

jquery - 缩小没有生成缩小版本