繁体   English   中英

Ajax php登录仅与alert()一起使用;

[英]Ajax php login only works with an alert();

我的ajax登录有一个很奇怪的问题。 下面我提供了登录代码。 奇怪的是:

如果我删除了警报(“ ???”); 获取正确的登录参数时,checklogin.php没有响应。

如果警报(“ ???”); 保留在该功能中,页面checklogin.php答复为“成功”,并且website.php已加载!

基本上,当没有alert()时,它不会输入ajax成功。

我已经看了几个小时了,我不知道警报触发了什么来使这项工作。

它仍然可以获取所有正确的参数,但是php不会在没有警报的情况下回复。 我曾尝试使用'beforeSend'在ajax中进行睡眠,但这也没有用。

提前致谢!

AJAX功能:

    function checkSwipedCredentials(decryptedCredentials)
{   
    $.ajax({
        type: 'POST',
        url: 'checklogin.php',
        data: decryptedCredentials,
        success:function(response)
                {
                    if(response == 'success')
                    {
                        document.location='website.php';
                    } else {
                        showSwipeForm(); //onfailure
                    }
                }
    });
    alert("???");
    return false;
}

PHP代码:

    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysql_query($sql);

$count = mysql_num_rows($result);
if($count == 1)
{
    echo "success";
    $_SESSION['username']=$username; 
} else {
    echo "failed";
}

删除return false; 没有理由您需要这样做。 警报正在抑制它的影响。

我可以告诉您警报的作用:它会在函数返回false之前添加一个暂停。 只要您需要单击“确定”,此暂停就足够了,这足以处理AJAX请求(请记住这是异步发生的)。

PHP最肯定地答复了它应有的情况。 仅不再正确评估响应。

现在剩下的问题是:如何调用此函数,以便返回值具有这些副作用?

警报阻止页面在页面出现时进一步采取行动。 这告诉我存在一个由“ return false”引起的问题; 或调用后页面上的其他内容与ajax调用冲突。 警报的存在允许ajax调用在中断之前完成。 我建议您隔离此功能并将其单独放在测试页上,以解决此代码是否有问题的情况。 我怀疑一旦隔离就会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM