<分区>
我已经查看了很多关于这个主题的帖子,但我的代码似乎并没有设置任何 cookie。
所以我最初的 ajax 调用是这样的:
$("#loginForm").submit(function(event) {
event.preventDefault();
var uid = document.getElementById("userLogin").value;
var pid = document.getElementById("passLogin").value;
var url = "../_scripts/loginScript.php";
$.ajax({
type: "POST",
url: url,
datatype : "script",
data: {user: uid, pass: pid},
success: function(msg) {
if( strcmp(msg,"passwords are equal") )
location.reload();
else
$('#error1').html(msg).show(100);
}
});
});
我在不同的 js 库中编写 strcmp()
函数的地方。
在做了一堆散列和加盐之后,我的 php 看起来像这样:
<?php
if($hashPass == $pass)
{
echo "passwords are equal";
$cookieInfo = $_POST['user'].",".$clearance;
setcookie("loggedIn", $cookeInfo,0,"/");
exit;
}
else
{
echo "Invalid password";
exit;
}
?>
当我测试它时,“密码相等”消息返回并且页面重新加载...但是当我检查我的浏览器时我的 cookie 从未设置。
我不确定我做错了什么...我以前使用过这段代码,当时我使用表单直接提交到 php 文件并且工作正常,但现在我正在使用 ajax cookie 似乎没有设置。
是不是因为我没有在 header("Location: ...");
调用之后设置 cookie..?