Перенаправление родительской страницы из загруженной вкладки AJAX - PullRequest
3 голосов
/ 14 сентября 2010

ТАК У меня есть функция php для перенаправления

public function redirect($url, $permanent=false, $statusCode=303) {
    if(!headers_sent()) {
        header('location: '.$url, $permanent, $statusCode);
    } else {
        echo "<script>location.href='$url'</script>";
    }
    exit(0);
}

Пока что это удивительно, но позвольте мне сказать, что я загружаю вкладку через AJAX, которая требует входа пользователя. Так что в идеалекогда вкладка загружается и обнаруживает, что пользователь не вошел в систему, она перенаправляет их на страницу индекса.Однако вместо этого перенаправленная страница (http://localhost/something/index.php в моем случае) просто загружается внутри вкладки, что имеет смысл, но, очевидно, это не то, что я хочу, чтобы это произошло:)

Однако, есть ли phpрешение сделать это?Или мне просто нужно иметь функцию перенаправления JavaScript на корневом уровне, которую я вызываю с загруженной вкладки AJAX, если пользователь не вошел в систему?

Редактировать: Извините.чтобы уточнить, что я имею в виду под вкладкой, это просто HTML, загруженный в тег DIV через AJAX

Ответы [ 2 ]

3 голосов
/ 14 сентября 2010

Ваш вопрос не совсем понятен в отношении того, что вы подразумеваете под "табуляцией"

Возможно, вам будет полезно использовать

top.location.href='$url'
1 голос
/ 14 сентября 2010

вы можете попробовать

функция php

public function redirect($url, $permanent=false, $statusCode=303) {

    if($_SERVER['HTTP_X_REQUESTED_WITH'] === "XMLHttpRequest"){
    die("AjaxRequest");
    }
    else{
        if(!headers_sent()) {
            header('location: '.$url, $permanent, $statusCode);
        } else {
            echo "<script>location.href='$url'</script>";
        }
        exit(0);
    }
    }

Функция Javascript

function ajaxresponse()
{
var response = //your ajax request response

if(response == 'AjaxRequest')
{
location.reload();
}
}

Explaination: Сначала проверьте в php, является ли это ajax-запросом или нет. поэтому для перенаправления отправьте ответ от php как сеанс ajax, чтобы вы могли проверить этот ответ в javascript, для которого перенаправление не будет иметь место.

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

Надеюсь, это поможет

...