在我们的Web应用程序中,我们使用在beforeunload事件中触发的ajax调用来跟踪用户是否仍在处理某些信息。大致如下所示:
$(window).on('beforeunload', function() {
$.ajax({
async: false,
url: "../orderInformation/assignOrder",
data: {
orderId: orderId,
shouldAssign: false
}
});
console.info("Handled beforeunload");
});
直到今天,这在Chrome,IE和Firefox中都运行良好。从Chrome 73.0.3683.103版开始,不再执行Ajax调用,尽管该处理程序中的其余JS均会执行。即消息被打印到控制台。
Chrome的开发人员工具栏上没有显示正在版本73.0.3683.103中执行的AJAX调用,并且我已经确认我们的网络服务器也未收到请求。但是,当我在Chrome 73.0.3683.86上运行相同的代码时,它将触发Ajax请求,并且Web服务器会收到它!我确认此更改会影响Mac OS和Windows。
Chrome 73.0.3683.103中的哪些更改导致了此问题?和/或如何解决?
来自客户的一系列支持通知书引起了我们的注意,因为这对我们的应用程序的工作方式产生了负面影响。在我11年的职业生涯中,作为Web应用程序开发人员,这是我第一次告诉我们的用户切换到Internet Explorer。
临摹微笑
慕后森
相关分类