如何使用ajax选择服务器响应

时间:2014-07-23 08:56:04

标签: php jquery ajax

我如何选择错误消息并显示它们。所有操作都有成功消息,也可能产生错误,我可以选择成功,但我没有选择错误消息。为什么我看不到事情的错误信息方面这是我到目前为止所尝试的

function ajax(action,id){
action = 'save';
if(action =="save")
    data = $("#userinfo").serialize()+"&action="+action;
else if(action == "delete"){
    data = "action="+action+"&item_id="+id;
}

$.ajax({
    type: "GET", 
    url: "ajax.php", 
    data: data,
    dataType: "json",
    success: function(response){

        if(response.success == "1"){
            if(action == "save"){
                $(".dert-form").fadeOut("fast",function(){
                  alert("here first");
                }); 
            }
            else if(action == "delete"){
                alert("here  to delete");
            }
        }else{alert(response.msg);}
    },
    error: function(res){
        alert("Unexpected error! Try again.");
    }
});
}

这是我的ajax.php

/* Check for blanks */ 
foreach( as $field => $value)              
{   if ($value == "")                          
{
    $blanks[] = $field;
}
}
if(isset($blanks))                                
{
 header('HTTP/1.1 409 Conflict');
     exit("You have blank fields.  Please enter the required information:  ");
}

3 个答案:

答案 0 :(得分:0)

使用HTTP状态代码。当您在PHP代码中设置以下响应代码时,它将在您的ajax调用上触发错误回调。

http_response_code(409);

答案 1 :(得分:0)

你会得到这样的

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}

答案 2 :(得分:0)

ajax部分似乎没问题。错误可能在你的php函数中,但取决于你拥有的数据的内容,所以很难说。

无论如何,我认为评论正确的解决方案是在php响应中返回http错误代码非常重要,因此 jQuery会将响应评估为错误而不是成功