首先,这一切都发生在同一个基本域上,而且我没有在网站上将任何ajax调用发送到不同的URL。
我每隔10秒从我网站上的任何页面到php类进行简单的ajax调用,并根据用户登录时分配的cookie中的用户信息,它将更新last_active datetime值为该用户的数据库中的当前时间戳。这主要用于在我当前在其屏幕上打开网站的用户的页面上显示。
我注意到如果我注销一个用户,然后以其他用户身份登录,则在登录后cookie会更新。但是,当我进行相同的ajax调用以更新last_active datetime时,它似乎正在更新以前登录用户的时间。
我发现在ajax调用期间和仅在ajax调用期间,cookie仍然包含之前登录用户的信息。
我以前从来没有遇到过这个问题,所以我不确定是什么原因引起的,或者如何修复它而不需要另外的ajax调用来手动将cookie设置为正确的用户。
至于示例代码,我想这是我举个例子的最好方法。
在我的index.php上,我包含了一个脚本index.js。在脚本中,我让它每隔10秒对app文件夹中的php脚本进行一次ajax调用。
$.ajax({
type: "POST",
url: "app/ajax.php",
data: {
'class': 'App_User',
'function': 'updateLastActive',
'user_account_id': user_account_id
},
dataType: "json",
success: function(data) {
}
});
上面的代码将使用给定的数据值调用app / ajax.php。基本上在ajax.php中,它将启动App_User类,然后以user_account_id作为参数运行updateLastActive函数。
正如我所提到的,整个ajax调用过程运行正常。唯一的问题是,例如,如果我在ajax调用期间从App_User类中执行var_dump($ _ COOKIE),而不是在ajax调用之前或之后从index.php执行var_dump($ _ COOKIE),则信息是不同的。
从前端角度来看,这是我在跟踪cookie信息时看到的内容。