从PHP向AJAX(jQuery)返回错误的好方法是什么


What is a good way to return an error from PHP to AJAX (jQuery)?

我一直在寻找一种简单、干净、灵活的方法,在POSTGET请求后将错误返回到浏览器。

带有jQuery的AJAX请求示例:

$.ajax({ 
  data : {
    method  : 'example',
    input : 1
  },
  success : function(i){
    if(i != 'succes'){
      alert(i);
    }
 }
}); 

服务器端响应:

switch($_POST['method']){
  case 'example':
    if($_POST['input'] == 1) {
      echo 'succes';
    } else {
      echo 'error';
      // or
      die('error');
    }
  break;
}

这感觉不够扎实。有人知道捕捉错误和消息的好方法吗?

@Esailija是正确的;返回HTTP状态代码,以便jQuery的ajax错误处理程序可以接收错误。

如果您希望AJAX调用符合HTTP标准,请使用PHP中的头函数发送在HTTP中定义的正确状态代码。将来,您可以从其他应用程序调用相同的PHP页面,而无需强制执行特定的错误处理。

如果错误是特定于应用程序的,那么如前所述返回一条json编码的消息。

使用JSON:

$error = array(
    'error' => 'SOME_ERROR_DESCRIPTION',
    'message' => 'You have an error blabla'
);
echo json_encode($error);

从您的JavaScript,您可以使用JSON对象来处理您喜欢的错误。