Вы ждете обратного вызова AJAX? Поскольку это асинхронный запрос, вам не гарантируется, что он будет завершен, пока он не вызовет функцию onreadystatechange()
с status=4
.
РЕДАКТИРОВАТЬ: Пример того, о чем я говорю:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.responseText == 'logged out successfully') {
facebookLogout(uid);
}
}
xhr.open('GET', 'http://example.com/my_logout.php?uid=' + uid, true);
xhr.send();
РЕДАКТИРОВАТЬ 2: Чтобы уточнить ваши вопросы в комментариях:
1) Да, PHP просто должен сделать эхо. В этом нет необходимости - я просто добавил это в качестве примера, чтобы убедиться, что запрос завершен не потому, что он не был выполнен / прерван.
2) Что касается $.get
и друзей, то это jQuery, а не чистый Javascript, который имеет свои собственные инструменты. В jQuery вы бы написали что-то вроде:
$.get('my_logout.php?uid=' + uid, function(data) {
if (data == 'logged out successfully') {
facebookLogout(uid);
}
});