2013-05-05 35 views
0

我有window.unload挂钩,以在用户关闭浏览器时在紧急情况下保存我的表单数据。我通过POST发送这个使用ajax。这适用于IE9,Chrome等,但不适用于表单数据为空的IE10(使用GET是一种解决方法)。在IE10中卸载事件,没有表单数据

我找不到任何对此行为的引用,是否记录在某处?

回答

2

我想,你正在使用这样的代码:

<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); 
}