ajax + php还有另一个正确错误处理的建议

时间:2012-04-22 13:11:58

标签: php jquery

$ .ajax有两个回报:成功和错误 如果$ .ajax调用php模块,如何将响应分配给成功和错误?
例如:
如果这行代码返回错误:

$connection = mysql_connect($server,$user,$password);  

我想收到ajax-error中的错误 如果php模块的执行是正确的,那么我想在ajax-sucess中收到一条消息 如果我从PHP发送echo“message”,我总是在ajax-success中收到消息,我不得不测试什么是成功,什么不是!

3 个答案:

答案 0 :(得分:2)

来自jQuery ajax documentation

  

错误(jqXHR,textStatus,errorThrown)
  如果请求失败,则称为的函数。 ...

在服务器端,请求已成功。通常,生成的回调将是成功处理程序,而不是错误处理程序。

您应该在ajax-success处理程序中处理mysql_connect错误。

答案 1 :(得分:0)

我认为只有在 ajax 调用不起作用时,ajax错误回调才会返回错误,而不是在你的(成功'ajaxed')中有某些东西(如你的情况下是sql命令) 脚本不起作用。

但是,要从ajax成功回调函数中的数据处理sql错误,您可以解析返回的数据。我的意思是你可以在脚本输出中创建一个id ='sql_error'的div,然后读取这个div的内容。如果没有sql错误,那么你的错误div必须是零内容。

这样的事情,也许(未经测试):

$.get(url, function (data) {
    var sql_error = $("#sql_error", data).html(); 
    // or var content = $("#error", $(data)).html();

    // you can then show output in the way you want, depending on sql_error
});

答案 2 :(得分:0)

试试这个....(测试过)。在服务器端的条件错误中使用它。

header('403 Forbidden', true, 403);
die('forbiden to log in. No authorization');

这将唤起错误功能。根据您的需要输入状态代码和消息。