在Chrome中window.onbeforeunload ajax请求
我有一个网页,可通过Ajax处理机器的远程控制。当用户离开页面时,我想自动与机器断开连接。所以这是代码:
window.onbeforeunload = function () { bas_disconnect_only();
}
断开连接功能只是将HTTP GET请求发送到PHP服务器端脚本,该脚本完成了断开连接的实际工作:
function bas_disconnect_only () { var xhr = bas_send_request("req=10", function () {
});
}
在FireFox中可以正常工作。但是使用Chrome,根本不会发送ajax请求。有一个不可接受的解决方法:向回调函数添加警报:
function bas_disconnect_only () { var xhr = bas_send_request("req=10", function () {
alert("You're been automatically disconnected.");
});
}
添加警报呼叫后,请求将成功发送。但是正如您所看到的,这根本不是一个解决方法。
有人可以告诉我Chrome是否可以实现吗?我正在做的事情对我来说完全合法。
谢谢,
回答:
我遇到了同样的问题,其中Chrome没有在window.unload事件中向服务器发送AJAX请求。
如果请求是同步的,我只能使其工作。我能够使用Jquery并将其 属性设置为 :
$(window).unload(function () { $.ajax({
type: 'GET',
async: false,
url: 'SomeUrl.com?id=123'
});
});
上面的代码适用于IE9,Chrome 19.0.1084.52 m和Firefox 12。
以上是 在Chrome中window.onbeforeunload ajax请求 的全部内容, 来源链接: utcz.com/qa/425021.html