Перенаправление браузера с использованием AJAX - PullRequest
2 голосов
/ 05 августа 2009

Есть ли способ перенаправить пользователя на страницу (в моем случае это страница входа), когда пользователь выполняет запрос AJAX к серверу? Сервер должен обслуживать данные только в том случае, если установлен сеанс, иначе пользователь должен быть перенаправлен. Я пытался отправить запрос заголовка ("location: ..."), но браузер обрабатывал его как строку (xmlhttp.response), а не воздействовал на него.

Ответы [ 3 ]

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

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

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

Не напрямую. Ваша функция обратного вызова должна справиться с этим.

Например, если сервер отправляет текст «LOGIN; /login.php;» тогда ваш обратный вызов onreadystatechange может иметь фрагмент

if (xmlhttp.responseText.substring(0,6) == 'LOGIN;') {
    window.location.href = xmlhttp.responseText.split(";")[1];
    return;
}

Если вы используете инфраструктуру для Ajax, этот код может быть в зависимости от того, какой обратный вызов получит результат вызова Ajax.

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

В функции обратного вызова вы можете установить window.location на новую страницу, если сеанс не установлен.

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