这真的很奇怪,以前从未发生过。我确信解决方案正好在我眼前......
从$.post
$.post("login.php", {
user_id : user_id
}, function(result) {
alert(result); //result if a returned string from login.php: echo 'pswd';
if (result == "error") { alert(1);
} else if (result == "pswd") { alert(2);
} else { alert(3); }
});
由于某种原因,if else语句正在通过result == "pswd"
并执行alert(3);
我确信我有类似的情况按预期工作。我错过了什么?
答案 0 :(得分:-2)
看起来像是错误的。如果你采用下面的代码并省略var声明。它将给出“开始”警报。但是如果不能显示警报。我认为因为此时var在技术上是空的。
或者您在返回的字符串中隐藏了字符。可能想检查返回字符串的字符长度,看看它是否确实是你“看到”的值。
在将var传递给期望返回值的函数之前,可能需要声明var。我在javascript中使用ByRef并不大。所以我可能错了。
<!DOCTYPE html>
<html>
<body>
<script>
var result = "pswd"
alert("start");
if (result == "error")
{
alert("error");
} else if (result == "pswd") {
alert("good");
} else {
alert("no match");
}
alert("done");
</script>
</body>
</html>