PHP中解决ajax请求session过期退出登录问题
PHP判断一个请求是Ajax请求还是普通请求 1、 session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: if(empty($_SESSION['sessionid']) || empty($_COOKIE['PHPSESSID'])){ echo "<script>"; echo "alert('用户过期,请重新登陆!');"; echo "parent.window.parent.window.location.href = '/index.php';"; echo "</script>"; } 2、 如果是页面保持着,但是10分钟之内没有做任何操作,页不知道是否过期,点击操作按钮,例如保存等,ajax请求已经进行,将会把页面的html打印出来,不能正常的弹出提示窗口,跳转到登陆页。 项目中进行ajax请求的操作很多,ajax的操作已经进行不能中断,不可能在每个ajax请求中都调用我们封装好的判断session是否过期的逻辑,将增加工作负担。我考虑在php的入口代码中调用已经封装好的session过期判断,其返回标识如 echo "timeout";exit; 在引用的jquery.js库中找到.ajax中调用的done方法