Я не верю, что существует общепринятый шаблон для этой ситуации.
Существует как минимум 2 ситуации, когда может возникнуть дубликат POST:
клиент повторно передает исходный POST по любой причине (например, пропустил ответ).
Пользователь повторно передает исходный POST (намеренно или нет) или выдает новый POST, предназначенный для замены более ранних версий.
Лучше всего решать проблему на стороне сервера.
Одним из решений является добавление уникального идентификатора (такого как GUID или естественный ключ) к каждому POST, а затем проверка сервером на наличие запросас этим идентификатором уже существует или нет.Ваш сервер должен будет сохранить состояние где-нибудь, пока обрабатывается существующий POST (cookie, SESSION, локальный файл, база данных).
Обратите внимание, что если вы используете GUID, вы должны быть уверены, что клиент несоздайте новый GUID для повторной передачи того же запроса.Вы можете избежать этой проблемы, используя естественный ключ вместо генератора GUID.Генерация естественного ключа должна быть повторяемой и (разумно) уникальной.