我有以下 Ajax 登录脚本。 index.php
将设置一个会话,然后返回类似{"status":true,"msgs":[],"url":"\/demo\/administrator\/index.php"}
用户名和密码签出的内容。然后页面应该重新加载,PHP 脚本将检查会话是否设置,如果是,将显示适当的页面。
“有时”在 Windows 7 上运行 FireFox 21.0 时,页面似乎重新加载,但随后错误地重新显示登录页面。当我说“似乎要重新加载”时,在使用 FireBug 时,我看到 POST 到服务器,然后我看到 console.log “重新加载页面”一小段时间,然后显示登录页面。如果我随后手动重新加载页面,会话将签出,并返回正确的页面。
为了排除故障,我syslog(LOG_INFO,"got here!");
在我的 PHP 脚本中放了一些,我发现它再也没有被访问过,因此我相信服务器在重新加载后没有受到攻击。我还检查了 Apache 访问日志,我相信它只会看到第一个 POST。
谁能让我知道发生了什么,以及如何补救?谢谢
$.post('index.php',{task:'logon',username:username,password:password},
function (data)
{
if(data.status==true){
console.log('reload page');
//window.location.href = data.url;
window.location.href = window.location.href;
//window.location.reload();
}
else {msgs.html("<ul>"+mkList(data.msgs)+"</ul>");}
},'json'
);