Попробуйте создать переменную (желательно Boolean) и измените ее, как только вы получите ответ от вызова Ajax. И положите функцию bas_disconnect_only()
внутри цикла while. У меня также была такая проблема, как однажды. Я думаю, это происходит потому, что Chrome не ждет вызова Ajax. Я не знаю, как я его исправил, и я не пробовал этот код, поэтому я не знаю, работает ли он. Вот пример этого:
var has_disconnected = false;
window.onbeforeunload = function () {
while (!has_disconnected) {
bas_disconnect_only();
// This doesn't have to be here but it doesn't hurt to add it:
return true;
}
}
И внутри функции bas_send_request()
( xmlhttp - HTTP-запрос):
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
has_disconnected = true;
}
Хорошо удачи, и я надеюсь, что это поможет.