我正在使用ajax和jquery发送一个* synchonou * s http请求到一个web应用程序中的php脚本注销用户,如果用户决定离开页面而不是注销。jquery ajax同步http请求
我使用兴田以下代码:
function close()
{
return "If you exit you will be logged out ...!";
}
window.onbeforeunload = close;
$(window).unload(function() {
$.ajax({
url: "logout.php",
async:false,
success: function(msg){
alert("You have been logged out ...!");}
});
});
的Ajax是从当我按下后退按钮的工作在所有情况下分开。当我按后退按钮,我甚至得到成功功能运行,但当我检查PHP脚本没有运行,因为我有一个fwrite函数在它告诉我它的工作。 除了后退按钮之外,它还在其他情况下工作。
我刚刚尝试添加缓存:false,它没有工作。它可以有任何事实,当我按回它回到另一个PHP脚本? – user434885 2011-04-14 09:06:16
@user:如果你真的看到'success'函数被调用,但是你真的*不*看到PHP的日志行,我看不到任何其他选项,而浏览器使用缓存响应或(道歉)你错误观察。无论如何,在页面卸载上做任何事情都是非常不可靠的(该代码在Safari,Opera,IE9,prob。others上不会做你想要的),所以我假设你必须有一个备用(超时,等等) )。我建议不要使用'alert',并简单地将从卸载中获得的任何主动注销作为*奖金*,而不是实际依赖的任何内容。 – 2011-04-14 09:33:07