navigator.sendBeacon():是一个用于发送数据的 API,通常用于在页面卸载或关闭时发送数据,以确保数据被成功发送到服务器。相比于其他的 AJAX 请求,navigator.sendBeacon() 具有更高的可靠性和更低的延迟。
window.addEventListener('beforeunload', function(event) {
let formData = new FormData();
formData.append('abc', 'xyz');
navigator.sendBeacon('path', formData);
});
const controller = new AbortController();
const signal = controller.signal;
fetch('path', {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
},
keepalive: true,
signal: signal
})
.then(response => console.log(response))
.catch(error => console.error(error));