Вход

Просмотр полной версии : 30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма.


pizzZ
18.02.2010, 06:52
Привет всем. Имеем следующее.

2 скрипта на сервере. Допустим login.php и loginpost.php
Первый, выводит форму. Второй получает данные из формы.

Второй скрипт, если все плохо, или все хорошо, или все средне возвращает 30(1|2) редирект.

Добавляю Аякс. На форму вещаю обработчик, который при нажатии пользователем кнопки отправить, проверяет данные в форме, и отправляет данные на скрипт loginpost.php.
Loginpost.php модифицирую так, чтобы если все плохо, и запрос Ajax возврашался объект с ошибками в формате JSON. Если все хорошо, вместо 30(1|2) редиректа возвращаю редирект для javascript.

Проблема в следующем, как сделать обработчик ответа от loginpost.php
У меня есть следующие варианты.

Если запрос Ajax и требуеться сделать редирект loginpost.php возврашает window.location = урл. А в обработчике запроса, мы проверяем ответ сервера, если начинаеться с window то выполняем как просто javascript через eval, иначе обрабатываем с помощью eval как json ответ.

Либо сделать тоже самое, но вместо window.location = урл loginpost.php будет возврашать json всегда, но тогда в обработчике ответа нужно после создания json проверять, есть ли в объекте свойство redirect и если есть, то редиректить.

Или есть еще более просто способ? И если нет. Каким бы вы воспользовались?

P.s. Извините что несколько сумбурно написал.

Tim
18.02.2010, 07:25
А как насчёт вложенных объектов, масивов и т.п.? Т.е. первый элемент содержит информацию о типе ответа т.е. как там выполнилось с ошибками или без и по значению этого элемента вы определяите как обрабатывать второй элемент ответа.

pizzZ
18.02.2010, 09:06
В общем понятно :)
Хотелось бы чтобы Ajax отрабатывал 301 редирект для всей страницы а не для запроса.