gpt4 book ai didi

javascript - JQuery 字符串比较返回不正确的值?

转载 作者:行者123 更新时间:2023-11-30 00:27:27 26 4
gpt4 key购买 nike

我正在通过 AJAX 向 PHP 脚本发送发布请求,如下所示:

$.post("login.php", {u: username,p: password})
.done(function(response){
console.debug(response);
if (response === "0") {
$("#loginMessage").html("Invalid Username or Password");
} else {
$.mobile.changePage("#homePage");
}
})

login.php 片段。如果登录凭据失败,我将回显 “0”。我相信这会输出一个字符串,因为它在引号中,而不是 echo 0;

    if ($stmt->num_rows > 0 && password_verify($password,$hashedPassword)) {
$_SESSION["uid"] = $uid;
} else {
echo "0";
}

但是,当我输入无效凭据时,比较 response === "0" 返回 FALSE,尽管当我使用 console.debug(response) ,说明确实是0

经过我自己的一些摆弄之后,我发现如果我将 response === "0" 更改为 response == 0,它会正确计算为 是的

response === 0 的计算结果也为 FALSE,这让我更加困惑。

有人可以为我解释一下吗?

最佳答案

此问题的典型原因是响应包含空白字符。它们在控制台中不一定很明显,但检查 response.length是找出答案的一种简单方法。

请记住,<?php ... ?> 之外的任何内容定界符和空白字符(例如换行符)将包含在响应中。

防止尾随空白字符的典型方法是不使用结束符 ?>完全没有。


虽然你可以简单地"trim" the response在比较之前,更好的解决方案是修复服务器端脚本,使其真正只发送您要发送的内容。

关于javascript - JQuery 字符串比较返回不正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30894949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com