我发现了一个有趣的问题,即 JQuery 的 AJAX 请求中的回显值,但我没有答案:
我的data == "LOCKED"
永远不会返回true(第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{
[...]
}
}
});
});
PHP(1) -> 获取 Class(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;
PHP(2,“Login_check.php”):
[...]
// also tried:
// $test = "LOCKED";
// var_dump($test); // -> string(6) "LOCKED"
// return $test;
return "LOCKED";
[...]
如果您需要更多信息,请告诉我! 我希望有人知道导致这个问题的原因!
最佳答案
一定是因为一些空格或换行, trim 数据
总是更好。试试这个:
if (data.trim() == "LOCKED") {
您还可以使用:
if ($.trim(data) == "LOCKED") { // using jQuery.
关于javascript - 在 JQuery 中比较两个相同的字符串返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34744565/