POST может использоваться для перемещения параметров из URL-адреса в запрос, но это не «правильный» и не лучший метод.Стандарты HTTP таковы, что запросы не GET предназначены для использования только для запросов, которые изменяют состояние на сервере.Вот почему вы получаете предупреждение, когда обновляете страницу, сгенерированную в ответ на запрос POST.
Нет ничего плохого в наличии параметров в URL.Так много внимания не следует уделять тому, что отображается в строке URL, не говоря уже о том, что после?Однако если у вас есть какая-то необходимость (например, настойчивость клиента) для их удаления, у вас есть несколько вариантов, два из которых Джон упоминает.
Я предполагаю, что ваше «новое» действие выполнено в стиле REST, в этомон генерирует форму, которую необходимо отправить для изменения состояния на сервере.Поэтому ваши варианты могут быть:
- Использовать POST, даже если он не соответствует стандарту.Не рекомендуется.
- Использовать AJAX GET.Это требует javascript, а обработка ajax добавляет такие требования, как использование JS-фреймворка и тестирование.
- Используйте GET (или POST), но собирайте параметры и сохраняйте их, перенаправляйте пользователя обратно в другое чистое состояние.URL, который отображает эти сохраненные значения.Вы можете сохранить их в хеше сеанса или создать их запись в базе данных.На самом деле вам действительно следует использовать POST в этом случае, поскольку вы эффективно изменяете состояние на сервере, сохраняя эти параметры.В этом случае, если пользователь обновит страницу, на которую он направлен, эти параметры будут сохранены.Это эффективно удаляет предупреждение браузера при обновлении, что я, безусловно, могу оценить.