当用户关闭浏览器时,我将window.unload挂钩以在紧急情况下保存表单数据。我通过POST使用ajax发送它。这适用于IE9,Chrome等,但不适用于表格数据为空的IE10(使用GET是一种解决方法)。
我找不到任何对此行为的引用,是否在某处记录了?
答案 0 :(得分:2)
我假设你正在使用这样的代码:
<html>
...
<body onunload="inOnUnload();">
...
inOnUnload()
- 函数的定义如下:
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);
}