我正在使用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