【问题标题】:How handle errors in php script fired by Jquery.ajax?如何处理 Jquery.ajax 触发的 php 脚本中的错误?
【发布时间】:2016-12-24 01:29:22
【问题描述】:

我有 php 脚本,使用 jquery ajax 函数触发。是这样的:

$("a.test").click (function () {
var new_id = $(this).attr("new_id");


$.ajax({
    url: 'test.php',  
        type: "POST",
        cache: false,
        async: true,
    data: ({
        new_id : new_id
        }),
    success: function (data) { 
        alert (data);       
    },
    error: function(){
        alert('error');
    }
});
return false;
}); 

现在,在 test.php 中有一些错误,但我看不到它们。 Sript 只是运行,我没有反馈,只有错误警报(alert ('error'))。

我怎样才能找回 test.php 中的错误来处理它们?

【问题讨论】:

  • 最简单的解决方案是打开控制台并转到网络选项卡并查看请求的响应。此解决方案是如果您不想更改代码。

标签: php jquery ajax error-handling


【解决方案1】:

在 test.php 上,您可以使用此处解释的代码显示错误:https://stackoverflow.com/a/21429652/6525724

然后在这个页面上你可以使用 alert('error') 而不是 alert(data)。

【讨论】:

    【解决方案2】:

    如果你echotest.php 中的错误,你可以这样做:

    $.ajax({
        url: 'test.php',  
            type: "POST",
            cache: false,
            async: true,
        data: ({
            new_id : new_id
            }),
        success: function (data) { 
            alert (data);       
        },
        error: function(data){
            alert('error:'+data);
        }
    });
    return false;
    }); 
    

    编辑:

    我通常会做这样的事情。在 test.php 中,如果您遇到错误,请使用您的错误信息创建一个数组并将其回显为 json 编码:

    $message=array('error' => 1,'message' => '<div class="alert alert-danger" role="alert">' . $login['message'] . '</div>' );
    echo json_encode($message);
    

    现在在您的 jquery 中,您可以通过以下方式检索错误:

    success: function (data) { 
            alert (data);       
        },
        error: function(data){
            var obj = JSON.parse(data);
            alert(obj.message);
        }
    

    当你把它放在这样的数组中时,你甚至不再需要error: function(data),因为你可以简单地:

    success: function (data) { 
        var obj = JSON.parse(data);      
        if (obj.error) {
            // do something
            alert (obj.message); 
        }else{
            // do something else
        }
     },
    

    【讨论】:

      【解决方案3】:

      试试这个

       error: function(XMLHttpRequest, textStatus, errorThrown) { 
          alert("Status: " + textStatus); alert("Error: " + errorThrown); 
      }       
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-06
        • 1970-01-01
        • 2019-05-23
        • 1970-01-01
        • 2011-05-29
        • 2014-05-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多