在JQuery中比较两个相同的字符串会返回false

Y.H*_*mes 0 javascript php ajax jquery

我发现了一个有趣的问题,来自JQuery的AJAX请求的回显值,我没有回答:

data == "LOCKED"永远不会回归真(第13行)!

JQuery - >按下单击时调用AJAX:

$.ajax({
        url: "ajax/login_ajax_call.php",
        method: "POST",
        data: { user: usr, password: pwd }
    }).done(function(data){
            if(data == true || data == "true"){          // -> this works with data beeing true (bool) or "true" (string)
                $("#form_submit").submit();
            }
            else{
                console.log(jQuery.type(data));          // -> (string)
                console.log(data);                       // -> "LOCKED" 
                console.log(jQuery.type("LOCKED"));      // -> (string)
                if(data == "LOCKED"){                    // also tried "===" but it never returns true
                    [...]            
                }
                else{
                    [...]
                }
            }
    }); 
});             
Run Code Online (Sandbox Code Playgroud)

PHP(1) - >获取类返回的值(PHP(2)):

include_once("../Classes/Login_check.php");
$lih = new Login_check();
$result = $lih -> check($_POST["user"], $_POST["password"]);
var_dump($result);                                     // -> string(6) "LOCKED"
echo $result;
Run Code Online (Sandbox Code Playgroud)

PHP(2,"Login_check.php"):

[...]
// also tried: 
// $test = "LOCKED"; 
// var_dump($test);                                    // -> string(6) "LOCKED"
// return $test;
return "LOCKED";
[...]
Run Code Online (Sandbox Code Playgroud)

如果您需要进一步的信息,请告诉我!我希望有人知道导致这个问题的原因!

Pra*_*man 6

必须是因为一些白色空格或新线条,所以修剪它总是更好data.试试这个:

if (data.trim() == "LOCKED") {
Run Code Online (Sandbox Code Playgroud)

您还可以使用:

if ($.trim(data) == "LOCKED") { // using jQuery.
Run Code Online (Sandbox Code Playgroud)