Javascript location.reload (правда); испортил мою просьбу и вызов ajax - PullRequest
1 голос
/ 04 августа 2011

У меня есть кнопка входа в Facebook, с которой пользователи входят в систему.После входа в систему я собираю их учетные данные и регистрирую их в сеансе.Затем, после вызова AJAX, я обновляю страницу следующим образом с помощью JavaScript:

location.reload(true);

Кажется, что это путает переменную запроса, и AJAX не вызывается.Есть ли способ дождаться завершения вызова ajax, прежде чем я обновлюсь?

Что обычно делают люди в такой ситуации?

Спасибо!

ps -Я тестирую это на этой тестовой странице, если кто-то хочет попробовать: http://www.comehike.com/test_fb_connect.php

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

Почему бы не поместить обновление в обратный вызов?

request.onreadystatechange = function(){
    if (request.readyState == 4){
        var xmlDoc = request.responseXML;
    }
    location.reload(true);
}

функция обратного вызова onreadystatechange вызывается после завершения запроса ajax.Вот когда вы хотите обновить страницу, потому что вы знаете, что вся работа с Ajax завершена.Если вы поставите location.reload(true) после обратного вызова, он будет запущен до обратного вызова.request.send(null) запускается до обратного вызова onreadystatechange.

1 голос
/ 05 августа 2011

Попробуйте это:

self.location = 'your.link';

Одер:

window.location.reload();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...