Может быть, Chrome отменяет ожидающие запросы Ajax, как только браузер перенаправляется на другой URL-адрес?

У меня есть эта функция, чтобы разблокировать список, который в настоящее время редактирует пользователь:

function unsetLock(id) {
  $.ajax({
    type: "POST",
    url: "/ajax.php?action=unsetLock",
    dataType: 'json',
    data: "id="+ id
  });
  return true;
}

Когда пользователь выходит из списка, я должен отменить блокировку:

unsetLock(lockID);
document.location.href='/page/to/navigate/back/to.php';

Однако эта разблокировка иногда работает, а иногда нет. Я думаю, что это потому что document.location.href выполняется до того, как вызов ajax будет фактически отправлен на сервер.

Как я могу принудительно отправить разблокировку перед переходом пользователя на следующую страницу?

На самом деле мне не нужно ждать Ajax-Reply, так как я хочу перенаправить пользователя, независимо от того, успешно ли он или нет. Я просто хочу убедиться, что он передается на сервер.

Если я помещу document.location.href в функцию Ajax, она будет ждать ответа.

9
задан JochenJung 20 February 2012 в 13:07
поделиться