我有一个ASP.NET应用程序,它使用XMLHTTPRequest在用户关闭浏览器时调用服务器端方法(要求是我需要在用户关闭浏览器时发送电子邮件)。当我有Javascript警报时,代码工作正常。但是当我删除警报按钮时它不起作用。我在StackOverflow here中阅读了另一篇文章,它有类似的问题。有人能告诉我解决这个问题,这可以保证在用户关闭浏览器时执行我的服务器端代码。请在下面找到代码段。
var ajaxRequest;
window.onbeforeunload = function(e) {
//function ConfirmClose(e) {
var evtobj = window.event ? event : e;
if (evtobj == e) {
//firefox
if (!evtobj.clientY) {
AjaxRequest();
//evtobj.returnValue = message;
}
}
else {
//IE
if (evtobj.clientY < 0) {
AjaxRequest();
}
}
}
function AjaxRequest() {
var url = "closing.aspx?function=EmailUnsubmittedApplication";
if (window.XMLHttpRequest) {
AJAX = new XMLHttpRequest();
}
else {
AJAX = new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
AJAX.open("POST", url, false);
AJAX.send(null);
return AJAX.responseText;
}
else {
return false;
}
}