Jquery ajax同步HTTP请求


jquery ajax synchronous http request

我使用ajax和jquery发送一个*synchonou*s HTTP请求到一个PHP脚本在一个web应用程序注销用户,如果在这种情况下,用户决定离开页面而不是注销。

我使用下面的代码:

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函数告诉我它工作了。

我正在使用ajax和jquery发送异步HTTP请求

你引用的代码中的请求是同步的,而不是异步的。

如果你看到success函数被调用,而你没有看到PHP代码运行,这意味着你的浏览器已经缓存了以前的结果并重用了它。您可以通过将cache: false添加到您的请求选项中来绕过它。