此问题的重复类型:Reliably complete Ajax request on page unload
基本上我需要在关闭页面之前发出网络请求。我不需要响应值。但是,简单地将它放在我的beforeunload处理程序中是行不通的:
window.addEventListener('beforeunload', () => {
// send ajax
}
它与sendBeacon及时成功触发,但我正在寻找与所有浏览器兼容的解决方案,而sendBeacon不是。
答案 0 :(得分:0)
没什么好看的。有一堆相当hacky解决方案(其中一些在MDN sendBeacon文章中提到)。你唯一能做的就是使用sendBeacon(如果它存在),否则回退到其他选择。
如果不支持sendBeacon,这是一个快速搜索的polyfill,它会执行同步ajax请求:https://github.com/miguelmota/Navigator.sendBeacon