![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
Всем привет.
Юзаю версию Catalyst 5.80007 под FreeBSD. Использую учебный пример с книгой Chapter4 (http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/). При заведении новой книги через форму отрабатывает MyApp::Controller::Books метод form_create_do. Думал у меня проблема, потом скопировал код из примеров - ошибка та же: При отправке данных через форму после выполнения рабочего кода (т.е. книга создаётся), выполняется ещё один запрос на GET. Соотвественно, вижу не books/create_done.tt2, а $c->response->body( $c->welcome_message ) из Root.pm index. Откуда у меня этот GET? Всю голову уже сломал. Помогите, плз. Вот лог сервака: [debug] "GET" request for "books/form_create_do" from "xxxxxxx" [debug] Path is "/books/form_create_do" [debug] *** INSIDE BASE METHOD *** [debug] Rendering template "books/create_done.tt2" [info] Request took 0.136692s (7.316/s) .------------------------------------------------------------+-----------. | Action | Time | +------------------------------------------------------------+-----------+ | /books/base | 0.001239s | | /books/form_create_do | 0.083337s | | /end | 0.042404s | | -> MList::View::TT->process | 0.040402s | '------------------------------------------------------------+-----------' [info] *** Request 5 (0.021/s) [76722] [Tue Jul 28 18:57:42 2009] *** [debug] "GET" request for "/" from "xxxxxxxx" [debug] Path is "/" [info] Request took 0.008734s (114.495/s) .------------------------------------------------------------+-----------. | Action | Time | +------------------------------------------------------------+-----------+ | /index | 0.000648s | | /end | 0.000635s | '------------------------------------------------------------+-----------' Это сообщение отредактировал(а) mrrico - 28.7.2009, 17:53 |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
код в контроллера студию.
P.S. а вы шаблон то как-нибудь вызываете ? |
|||
|
||||
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
В общем, ситуацию решил. Если так можно сказать.
Код контроллера - Books.pm из стандартных примеров (ссылку я указывал). Описание: Я запускаю сервер, он соотвесвтенно, на 3000 порту поднимает перловый http серврер. И, через IE всё работает нормально (!). А вот FF 3.5.1 при запросах через POST на урлы типа http://any_domain.ru:3000/books/form_create_do после выполнения POST отправляет ещё и GET на http://any_domain.ru:3000/ Я очь люблю огнелиса, но получается ишак в данном случе рулит. Причина ошибки, что я наблюдаю в FF. Думаю, и под FF всё будет работать замечательно в боевом режиме, когда проброс будет сделан через nginx и FF перестанет смущаться 3000 порта. |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
mrrico, бред какой - то.. то что FF делает - еще запрос - это его дело.
но при POST запросе - он должен показывать данные пришедшие в ответ, а не что то - еще. Посмотрите Firebugом сервер данные возвращает ? код ответа 200 ? может там какой редирект приходит ? |
|||
|
||||
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
Я знаю, что бред похоже ))
Файербаг показывает переход на "/". Этого запроса я не делаю. Отправляю post на http://any_domain.ru:3000/books/form_create_do. Ишак отрабатывает (лог сервера POST "/books/form_create_do") и показывает нужный шаблон. А в случае FF лог сервера показывает POST, а затем GET "/" Ошибка получается не в коде, а в браузере. Ну нет у меня редиректов.. нет. Тут парнишке с работы показывал (он на каталисте проект поднимал), он то же руками развёл. Хз. |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
mrrico, вероятность такой нехилой ошибки в ФФ -> 0
Посмотрите внимательнее Firebug -> net или LiveHttpHeaders (есть такой плагин для FF) - что возвращает сервер на первый запрос (т.е. на пост). А лучше пришлите все сюда. Интересно все-таки ) |
|||
|
||||
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
Сори, за длинный пост, но так будет понятнее:
Это Файербуг на странице form_create. ![]() Это после клика на сабмите ![]() Это лог Лайва ![]() Это серверный лог ![]() При этом, хочется отметить, что IE показывает в результате "ожидаемую страницу": ![]() И в логе только ![]() |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
мде.. Действительно сервер возвращает FF 200 и вроде даже какой - то контент.
Что на ум приходит 1) действительно глючный FF - показывает что вы делаете GET запрос, хотя на самом деле POST 2) может Connection: close на него так влияет ? Вообщем убедитесь, что в ответе сервера файефоксу пиходит код 200 и правильный контент и считайте это глюком браузера =) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |