IE10中的卸载事件,没有表单数据

Unload event in IE10, no form data

本文关键字:表单 数据 事件 卸载 IE10      更新时间:2023-09-26

我有一个窗口。卸载挂钩,以保存我的表单数据在紧急情况下,当用户刚刚关闭他们的浏览器。我通过POST使用ajax发送这个。这适用于IE9, Chrome等,但不适用于IE10,其中表单数据为空(使用GET是一种解决方案)。

我找不到任何关于这种行为的参考,它是记录在某个地方吗?

我假设,您正在使用这样的代码:

<html>
   ...
   <body onunload="inOnUnload();">
      ...

inOnUnload() -函数定义如下:

function inOnUnload() {
   xmlhttp.open("POST", "http://some-location", /*async*/ true);
   http.send(request);
}

这个在IE10中的问题是,在文档最终被卸载之后,它似乎取消了请求。这发生在表单数据有机会离开客户机之前。IE10中onunload事件发送数据,必须使用XMLHttpRequest.open(...)中的async = false参数。

下面的工作对我来说很好:

function inOnUnload() {
   xmlhttp.open("POST", "http://some-location", /*async*/ /*!!!*/ false);
   http.send(request);
}