@aspirantes

Как избавится от двойной отправки формы, методом POST?

Есть ли решения данной проблемы без прикручивания ajax, фреймворков, редиректов. Чтобы после отправки формы и перезагрузки страницы, форма не отправлялась повторно? Редирект не помогает при возврате на страницу, да и сам метод из разряда (спрятать). Возможно ли сообщить браузеру, чтобы не сохранял форму POST?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
1. отправлять форму через XHR / fetch (ajax post).
2. редирект после отправки формы - типовое и надёжное решение
3. можно сохранять в сессию последнюю отправленную форму. и если видим дубликат данных то игнорировать этот post-запрос.

Если редирект "не помогает" то прошу в студию минимальный пример кода где у вас форма + страница которая после получения формы делает редирект, а мы проверим правда ли "не помогает".
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
При отображении формы делайте скрытое поле с uuid и храните его в сессии или бд. При получении смотрите это значение если оно есть то все нормально и вставляете, после вставки стираете его. Впрочем можно и до. Если нет выводите сообщение что форма уже отправлена
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы