diff --git a/src/wp-admin/js/post.js b/src/wp-admin/js/post.js index 1ead4bed1c..5ca772b963 100644 --- a/src/wp-admin/js/post.js +++ b/src/wp-admin/js/post.js @@ -407,16 +407,31 @@ jQuery(document).ready( function($) { return; } - $.ajax({ - type: 'POST', - url: ajaxurl, - async: false, - data: { - action: 'wp-remove-post-lock', - _wpnonce: $('#_wpnonce').val(), - post_ID: $('#post_ID').val(), - active_post_lock: $('#active_post_lock').val() + var data = { + action: 'wp-remove-post-lock', + _wpnonce: $('#_wpnonce').val(), + post_ID: $('#post_ID').val(), + active_post_lock: $('#active_post_lock').val() + }; + + if (window.FormData && window.navigator.sendBeacon) { + var formData = new window.FormData(); + + $.each(data, function(key, value) { + formData.append(key, value); + }); + + if (window.navigator.sendBeacon(ajaxurl, formData)) { + return; } + } + + // Fall back to a synchronous POST request. + // See https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon + $.post({ + async: false, + data: data, + url: ajaxurl }); });