我正在尝试制作用户验证页面。我使用Jquery $ .ajax()调用PHP文件来验证用户数据并存储一些cookie数据,但PHP文件不保存cookie数据。我更喜欢用这种方式制作而不是通过Jquery $ .cookie保存cookie,因为我不希望cookie出现在javascript代码中。这是我的代码:
validation.js:
$.ajax({
type: 'POST',
url: 'json_user_verify.php',
data: $('#UserForm').serialize(),
dataType: "json",
cache: false,
success: function(data) {
if(data.correct)
{
location.href='panel.php';
}
else
{
$('#PMessage').css('color','red');
$('#PMessage').html(data.error);
}
},
error: function(xhr,ajaxOptions,thrownError) {
alert("Error!!!");
}
});
这是存储cookie值的PHP片段代码(我省略了用户验证,它运行良好)。
user_cookie.php:
setcookie(
"UserID",
$userID,
time()+(60*60*24*30),
dirname($HTTP_SERVER_VARS['REQUEST_URI']));
$result["correct"]=true;
echo(json_encode($result));
这是我第一次尝试通过jQuery进行用户验证。所有用户验证过程都运行良好(数据库访问,验证,表单提交等)。我已经尝试了没有jQuery的PHP代码,并且cookie也正确保存。但是当我通过$ .Ajax()拨打电话时,cookie不会被保存(其余的过程已经在运行)。
感谢您的帮助