Перезагрузить страницу с ajax-загруженной подстраницы - PullRequest
0 голосов
/ 18 ноября 2010

Я использую ajax для загрузки сгенерированного php контента в основной div по какому-то щелчку меню.

То, что я хотел бы сделать, это иметь некоторую функциональность перезагрузки - если истекает какое-то время ожидания, я хочу, чтобы пользователь прошел повторную аутентификацию, я проверяю это по щелчку меню перед загрузкой содержимого в div.

Если я сделаю это с заголовком php ("location: login");

Я предполагаю, что он хочет перенаправить внутри загрузки div, но я хочу, чтобы вся страница перенаправляла ...

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Лучшее, что вы можете сделать, это что-то вроде этого

В верхней части вашего файла

ob_start();

Добавьте это в конец вашего php-файла

if($_SEESION['active']){
    ob_end_flush()
}else{
    ob_clean();
    echo "{Session_invalid}";
    ob_end_flush();
}

Затем в вашем AJAX (XMLHttpRequest)

ajax = new XMLHttpRequest();
ajax.open("GET", "/folder/yourFile.php", true);
ajax.onreadystatechange = function(){
    if(readyState == 4){
        if(ajax.responseText == "{Session_invalid}"){
            document.location = "http://your.authenticate.url/"
        }else{
            mydiv.innerHTML = ajax.responceText
        }
    }
}
ajax.send();

Обратите внимание, я построил это на том, что вы сказали, не удаляйте ваш AJAX, просто добавьте проверку if в AJAX

Allso этот кодбыл построен, так что вы можете добавить его в любой файл, даже если вы не сделали файл php, поэтому его нужно редактировать только сверху и снизу. Убедитесь, что в тегах есть

Это соответствует user228395 point 1

1 голос
/ 18 ноября 2010

Действительно, перенаправление XmlHttpRequest не имеет особого смысла.В основном у вас есть несколько вариантов.

  1. Вы позволяете своему вызову AJAX возвращать то, что заставляет ваш javascript понять, что вам нужно прямое (в этом случае, перенаправление с помощью javascript).

  2. Вы выполняете вызов AJAX перед тем, как пытаться загрузить содержимое в div, чтобы проверить, требуется ли пользователю аутентификация.

  3. Вы сохраняете переменную/ cookie, чтобы проверить, истек ли сеанс пользователя.Перед каждым запросом вы проверяете, так ли это.Если это так, вы позволяете пользователю аутентифицироваться.

Удачи!

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