我有一个非常奇怪的问题,我的ajax登录。下面我提供了登录代码。 奇怪的是:Ajax php登录只能使用alert();
如果我删除警报(“???”);我没有得到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";
}
你是什么意思“我没有得到checklogin.php的回应”? Firebug说什么? – 2013-02-27 15:13:07
Firebug显示没有响应,警报()有萤火虫显示响应:成功 @ F4r-20:确切地说,这是奇怪的事情......但仍然警报使evrything工作:/ – Chickenlal 2013-02-27 15:17:37
我会添加你的设计有缺陷,因为它不安全。使用ajax检查凭据没有意义,然后立即重新指向另一个不测试凭据的页面。你可能有一个标准的形式,检查是在'website.php'的负载上完成的。这将是安全的。 – Stevo 2013-02-27 15:24:28