Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Catalyst проблемы с отправкой POST 
:(
    Опции темы
mrrico
Дата 28.7.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
sir_nuf_nuf
Дата 28.7.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



код в контроллера студию.

P.S. а вы шаблон то как-нибудь вызываете ?




--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
mrrico
Дата 29.7.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 порта.
PM MAIL   Вверх
sir_nuf_nuf
Дата 29.7.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



mrrico, бред какой - то..  то что FF делает - еще запрос - это его дело.
но при  POST запросе  - он должен показывать данные пришедшие в ответ, а не что то - еще.
Посмотрите Firebugом сервер данные возвращает ? код ответа 200 ? может там какой редирект приходит ?


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
mrrico
Дата 29.7.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.7.2009

Репутация: нет
Всего: нет



Я знаю, что бред похоже ))
Файербаг показывает переход на "/".
Этого запроса я не делаю. Отправляю post на http://any_domain.ru:3000/books/form_create_do.

Ишак отрабатывает (лог сервера POST "/books/form_create_do") и показывает нужный шаблон.
А в случае FF лог сервера показывает POST, а затем GET "/"

Ошибка получается не в коде, а в браузере.
Ну нет у меня редиректов.. нет.

Тут парнишке с работы показывал (он на каталисте проект поднимал), он то же руками развёл. Хз.

PM MAIL   Вверх
sir_nuf_nuf
Дата 30.7.2009, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



mrrico, вероятность такой нехилой ошибки в ФФ -> 0

Посмотрите внимательнее Firebug -> net  или LiveHttpHeaders (есть такой плагин для FF) - что возвращает сервер на первый запрос (т.е. на пост). А лучше пришлите все сюда. Интересно все-таки )


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
mrrico
Дата 30.7.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.7.2009

Репутация: нет
Всего: нет



Сори, за длинный пост, но так будет понятнее:

Это Файербуг на странице form_create.
user posted image

Это после клика на сабмите
user posted image

Это лог Лайва
user posted image

Это серверный лог
user posted image





При этом, хочется отметить, что IE показывает в результате "ожидаемую страницу":
user posted image

И в логе только
user posted image
PM MAIL   Вверх
sir_nuf_nuf
Дата 30.7.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



мде.. Действительно сервер возвращает FF 200 и вроде даже какой - то контент.

Что на ум приходит
1) действительно глючный FF - показывает что вы делаете GET запрос, хотя на самом деле POST
2) может Connection: close на него так влияет  ?

Вообщем убедитесь, что в ответе сервера файефоксу пиходит код 200 и правильный контент и считайте это глюком браузера =)


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.