2016-03-28 31 views
2

我試圖在unload事件上發送PUT請求,但請求總是被取消。這裏如何在頁面卸載時發送AJAX請求而不取消?

回答說,這是不可能的:How to perform an ajax call on page unload?

答案在這裏表明這是可能的:How do I send an AJAX request upon page unload/leaving?

能否在卸載發送一個AJAX請求,如果是的話我怎麼能不被取消。

編輯:我不在乎迴應,我不需要回應。只需要向服務器發送一些信息,說明頁面已關閉而沒有保持活動檢查。

+0

現代瀏覽器是不可能的,因爲它是一種競爭條件。答案與第一個鏈接沒有區別。 – epascarello

+0

你使用jQuery嗎?或只有JavaScript? – leonziyo

+0

我正在使用JQuery @epascarello我不期待迴應,我不需要回應。如果我使用Google Apps腳本(作爲網絡應用程序)之類的其他異步通信方法執行相同的操作,則該請求會成功執行。 –

回答

3

所有你需要做的就是讓ajax調用同步。這樣瀏覽器將在關閉窗口/選項卡之前等待響應,並且不會被取消。

$(window).unload(function(){ 
    $.ajax({ 
     type: 'PUT', 
     url: '/your_url.php', 
     async:false, //IMPORTANT, the call will be synchronous 
     data: {} 
    }).done(function(data) {     
     console.log('complete'); 
    }); 
});