我在这里已经阅读了关于这个主题的多个问题,但我仍然对它有一些疑问。
我首先尝试使用Navigator.sendBeacon()它完美地工作但我需要支持所有浏览器,因此无法使用。
我提出的解决方案是:
$(window).on('unload', function(){
var xhr = new XMLHttpRequest();
xhr.open('POST', "http://localhost:8080/express/check", false);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send();
xhr.abort();
})
我尝试将链接更改为不存在的链接,并在执行此操作时断开互联网连接,并且在页面正常关闭后,它在Chrome,Firefox和Internet Explorer上正常工作。
我担心的是:这是否会在所有类型的浏览器上无缝地工作,或者是否存在潜在的问题(即页面在等待请求而不是关闭),即使在send()之后中止也是如此?
提前致谢
答案 0 :(得分:0)
您可以尝试使用beforeunload之类的内容,它几乎兼容每个浏览器。见Browser compatibility。向下滚动到浏览器兼容性
$(window).on('beforeunload', function(){
var xhr = new XMLHttpRequest();
xhr.open('POST', "http://localhost:8080/express/check", false);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send();
xhr.abort();
});