I am using onbeforeunload event to send ajax request to perform some clean up task.
When I am using onbeforeunload, it shows the confirmation dialog on closing the tab. What I want is not to show any confirmation dialog and just send the clean up request. Following is the script I am using.
window.onbeforeunload = unloadFunction;
function unloadFunction() {
var test_id = $('#test_id').val();
jQuery.ajax({
url: "/test/cleanup/" + test_id,
cache: false
}).done(function () {
return false;
});
return false;
}
Is there any way I can suppress the confirmation dialog?
As per some suggestions, I have tried to change return statement to return ;
instead of return false;
. But this is also not working.
As per my comments on the original post, the answer is to make the call synchronous by adding async: false
in the Ajax call settings, change the last return false to return null;
, and remove the done function:
window.onbeforeunload = unloadFunction;
function unloadFunction() {
var test_id = $('#test_id').val();
jQuery.ajax({
url: "/test/cleanup/" + test_id,
cache: false,
async: false
});
return null;
}