当用户刚刚关闭浏览器时,我有 window.unload 以在紧急情况下保存我的表单数据。我通过 POST 使用 ajax 发送这个。这适用于 IE9、Chrome 等,但不适用于表单数据为空的 IE10(使用 GET 是一种解决方法)。
我找不到对此行为的任何引用,它是否记录在某处?
当用户刚刚关闭浏览器时,我有 window.unload 以在紧急情况下保存我的表单数据。我通过 POST 使用 ajax 发送这个。这适用于 IE9、Chrome 等,但不适用于表单数据为空的 IE10(使用 GET 是一种解决方法)。
我找不到对此行为的任何引用,它是否记录在某处?
我假设,您正在使用这样的代码:
<html>
...
<body onunload="inOnUnload();">
...
使用inOnUnload()
-function 定义如下:
function inOnUnload() {
xmlhttp.open("POST", "http://some-location", /*async*/ true);
http.send(request);
}
IE10 中的问题在于,在最终卸载文档后,它似乎取消了请求。这发生在表单数据有机会离开客户端之前。要在 IE10 的事件中发送数据,onunload
必须使用.async = false
XMLHttpRequest.open(...)
以下对我来说很好:
function inOnUnload() {
xmlhttp.open("POST", "http://some-location", /*async*/ /*!!!*/ false);
http.send(request);
}