在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

回到顶部