Ajax/jQuery 中的函数“成功”

Function 'success' in Ajax/jQuery

本文关键字:成功 函数 jQuery Ajax      更新时间:2023-09-26

我在显示 Ajax 调用的成功函数中的值时遇到问题。我的代码如下。

$.ajax({
    type: "POST",
    url: "http://localhost/practical 8/checkuser.php",
    data: form_data,
    success: function(response)
    {
        if(response == 'success'){
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }else if(response == 'fail'){
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }
    }
});

我的用户查核.php基本上是回显"成功"或"失败"。

我的ifelse if 我的成功函数中的语句不起作用。但是做

$.ajax({
    type: "POST",
    url: "http://localhost/practical 8/checkuser.php",
    data: form_data,
    success: function(response)
    {
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }
    }
});

完美工作。我做错了什么?

我不会批评导致相同代码的 if 分支,并假设它只是为了测试目的。

您需要检查从 PHP 脚本发送的额外空格。这可以解释为什么javascript条件不返回true。

你也可以使用 jQuery: response = jQuery.trim(response); 修剪响应

字符串中可以有一个换行符。尝试:

response = $.trim(response)
if(response == 'success'){
  $("#errorUsername").html("<label class='error'>"+response+"</label>");
}else if(response == 'fail'){
  $("#errorUsername").html("<label class='error'>"+response+"</label>");
}

成功回调的第一个参数是返回数据,后跟文本状态参数。因此,请尝试以下操作:

success: function (data, textStatus) {
    if (textStatus === "success" || textStatus === "fail") {
        // do something
    }
}
请注意,成功

响应仅表示请求成功,并不一定表示代码产生了错误。

我同意有关此主题的所有回复,但是您不应在URL中使用任何空格,因为这会导致问题。如果需要,请使用_而不是空格,但绝对不要在网址中使用空格。尝试所有建议,它应该可以解决您的问题。