所以我一直在测试,发现如果
session_start();
if ( $_POST['animal'] != $_SESSION['animal'] ) die(json_encode(false));
在我的PHP函数中运行以处理AJAX调用,然后返回到我所拥有的JavaScript域
success: function (correctCaptcha) {
console.log("correctCaptcha is " + correctCaptcha); // test
console.log("correctCaptcha's type is " + typeof (correctCaptcha)); // test
if ( correctCaptcha )
{
我看到correctCaptcha
是字符串" false"而不是布尔值false
。因此,输入了if
块,这是导致错误的原因。我怎样才能让PHP给它一个布尔值作为它生成的JSON?或者什么是更好的解决方案?
答案 0 :(得分:2)
你可以做到
json_encode((bool)1); // which is true
或者
json_encode((bool)0); // which is false
理想情况下,你想要做这样的事情
$results = ["result" => false];
json_encode($results);
从文档中,这应该保留布尔值,而不是转换为字符串。
然后在你的javascript中访问结果(作为对象)
console.log(correctCaptcha.result);