Грязная маршрутизация - GET или POST - PullRequest
0 голосов
/ 14 января 2012

У меня есть этот поток, но я не знаю, как с ним справиться. Я думаю, что кнопка «Вперед» должна использовать GET, потому что она безопасна и идемпотентна, но текстовая область содержит большое количество текста, поэтому я не могу вставить ее в URI. Я изменил на POST.

Кнопка OK при подтверждении Создать альбом обязательно POST. Поток говорит, что при нажатии «Отмена» на verifyCreateAlbum он возвращается к nameAlbum с полями, которые были заполнены для редактирования. Я положил кнопку ОК в форме с действием = "verifyCreateAlbum". Проблема в том, как вернуться к названию Album?

Примечание: nameAlbum будет отображать ошибки, если обязательные поля не предоставлены.

enter image description here

Ответы [ 2 ]

1 голос
/ 14 января 2012

Хотя в RFC нет конкретных ограничений по длине для запросов GET, браузеры накладывают ограничения на длины URI.С некоторыми реализациями серверов есть также соображения.

Вы сказали, что текстовая область "содержит большой объем текста", поэтому рекомендуется использовать POST в этой ситуации, поскольку она не будет подвергаться ограничениям URI.

Относительно вашего первоначального вопроса: «Проблема в том, как вернуться к nameAlbum?»

В вашей форме verifyCreateAlbum вы можете использовать две отдельные формы.Форма для «OK», для которой действие вызывает указанный сценарий для подтверждения, и форма для «Отмена», в которой есть действие, вызывающее вашу форму nameAlbum.

Опция Anther становится умной со скрытыми полями ввода и передачей данных, но это может запутаться.

Лично, если бы это зависело от меня, я бы использовал jQuery / Javascript дляПодтверждение подачи формы.Это простое клиентское решение, которое не требует, чтобы вы покидали исходную форму, если нажата «Отмена».Но это только я ...

1 голос
/ 14 января 2012

Я не думаю, что проблема заключается в публикации или получении.

Вы можете создать две формы: одну с кнопкой ОК, отправить / перейти к следующему шагу;один с кнопкой отмены, post / get to nameAlbum.
Или вы можете создать одну форму с двумя кнопками с одинаковым именем и двумя разными значениями и post / get на какую-то страницу.На этой странице вы проверяете значение и перенаправляете к следующему шагу или к nameAlbum.

После публикации в verifyCreateAlbum, где вы храните данные из текстовой области?
Я предполагаю, что вы храните их в сеансе, чтобы в nameAlbum вы могли заполнить данные (если они есть) в поле.

И если вы можете использовать javascript, вы можете просто обработать следующий, отменить кнопку с некоторым javascript и избежать некоторой обратной передачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...