![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Molodec |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.12.2010 Где: Украина Репутация: 1 Всего: 1 |
Добрый день, господа.
Такая проблема. Раньше подтверждал форму через method="post" action="...".. (Кнопка submit) Теперь немного разобрался в Ajax и пытаюсь в случае правильности ввода перенаправить пользователя на другую страничку... Так вот, так как я делал раньше уже не получается... Ничего не происходит. А перенаправление в JS писать не хочется... Как то это не очень логично. Если для той странички требуется логин и пароль, показывать ее адрес, хоть на ней и стоит защита при открытии. Раньше у меня был класс, от которого я наследовал все свои сервлеты:
Теперь же в сервлетах можно было написать:
И мы уже перескакивали на эту страничку. Но вот сейчас этот метод отрабатывает без исключений.. Но.. На этом все и заканчивается. Переход никуда не осуществляется. То же самое и при response.sendRedirect(). Ajax организую с помощью jQuery. В отладчике просматриваю. Все отрабатывает. Единственное - страница не перенаправляется. С чем это связано и какие есть решения? Это сообщение отредактировал(а) Molodec - 27.8.2011, 09:13 |
||||
|
|||||
Gretchen |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.8.2004 Где: München Репутация: 2 Всего: 4 |
Привет. Если ты работаешь с AJAX, то request посылает уже не браузер напрямую, а JavaScript XHR объект. И response, который твой сервер послал получит не браузер, а этот Javascript объект. Ты этот response потом как текст или XML можешь прочесть в callback ( это третий аргумент метода JQuery.post() ) как аргумент функции. Потом ты с этим ответом можешь делать что хочешь, например увидеть как alert(data) или вставить внутри страницы в <div>. Я почти уверенна, что ты как response получаешь новую html-страницу. Так что напрямую через AJAX сделать redirect невозможно. AJAX обычно и используют, чтобы минимизировать перегрузку страницы.
Либо надо всётаки пользоваться Javascript так
либо перегружать через Javascript только куски страницы. Может можно заменить и содержимое тега <body>, но я никогда такое не пробовала Можно попробовать сделать так: создать сервлет, который в зависимости от параметра в request, решает какая страница вызывается и делает forward
и в JavaScript
Попробуй ещё обратится в раздел JavaScript здесь на форуме. Может там тебе подскажут более элегантное решение P.S. В FireFox есть отличный плагин для работы с JavaScript и в частности с AJAX. Установив его, ты сможешь видеть, что ты посылаешь серверу и что он присылает в ответ. |
||||||
|
|||||||
Molodec |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.12.2010 Где: Украина Репутация: 1 Всего: 1 |
Gretchen, спасибо за советы.
Попытался через alert вывести ответ сервера при forward - alert не отработал.
Видимо там возникает куча других исключительных ситуаций. Хотелось конечно, но не получилось возложить это на сервер. В итоге воспользовался, как ты и сказала:
Это пока что. Думаю, найти плагин: P.S. В FireFox есть отличный плагин для работы с JavaScript и в частности с AJAX. Установив его, ты сможешь видеть, что ты посылаешь серверу и что он присылает в ответ. и отследить. Может что и смогу исправить. В любом случае спасибо за информативный ответ. Будет где разгуляться. + P.S. Почему Ajax и перезагрузка страницы - потому что при вводе данных выполняется многократные проверки со стороны сервера. Перезагрузка для них - не уместна. А вот когда они выполняется и все дадут положительный ответ. Вот тогда и можно перезагружать страничку)) |
||||
|
|||||
Gretchen |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.8.2004 Где: München Репутация: 2 Всего: 4 |
Прости пожалуста. Только сейчас поняла, что забыла написать имя плагина. Это FireBug. Это практически стандарт для JavaScript программистов
|
|||
|
||||
Molodec |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.12.2010 Где: Украина Репутация: 1 Всего: 1 |
Знаю его))
Обычно пользуюсь, Dragon fly, но и с тем сталкивался. Только вот проблема... FireFox видимо считает Ajax запросы не безопасными и блокирует. Поэтому у меня на нём совсем Ajax на localhost не работает... Можно как то это исправить? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |