Отключить запрос подтверждения подтверждения формы в Google Chrome

19

Я хочу отключить всплывающие окна «Подтверждение повторной отправки формы» в Google Chrome при обновлении. Это (очень) старое обсуждение признает проблему, но не дает решения.

Есть кто-то с лучшей идеей?

Randomblue
источник
5
Загрузите исходный код Chrome и соберите свою собственную версию со всеми функциями, которые вы делаете и не хотите.
Моав
Как сказал JSZ в ветке обсуждения, на которую ссылался Джастин, именно сайт должен обрабатывать повторные посещения (например, поиски), а не браузер (невозможно) угадать, что является действительной / безопасной верной автоматической отправкой.
Synetech
из RFC 2616: «Это позволяет пользовательским агентам представлять другие методы, такие как POST, PUT и DELETE, особым образом, чтобы пользователь знал о том, что запрашивается небезопасное действие».
hakre
@ Моав Почему так серьезно? : p
delphirules

Ответы:

15

Chrome ввел эту «функцию», чтобы избежать непреднамеренного дублирования пользователями действий POST в формах, таких как покупка одной и той же статьи дважды.

Это, по-видимому, было исправлено некоторое время назад с помощью -disable-prompt-on-repostпараметра при вызове Chrome, но это также было нарушено в более поздних версиях.

Несмотря на многочисленные сообщения об ошибках в Chrome, которые оставались открытыми в течение многих лет (!), Ошибка все еще существует. По-видимому, модуль Chrome, который выполняет возврат / пересылку, написан настолько плохо, что исправить его практически невозможно. И никто не смеет переписать это с нуля.

Поэтому, если вы не можете изменить страницу, содержащую операцию POST, вам не повезло, и решения не существует.

Если вы можете изменить страницу, то у вас есть два решения:

  1. Используйте GET вместо POST
  2. Используйте метод Post / Redirect / Get с кодом ответа HTTP 303

Конечно, есть решение использовать другой браузер, кроме Chrome (но это не отвечает на вопрос).

harrymc
источник
Благодарю. Не могли бы вы дать ссылку на некоторые из этих отчетов об ошибках?
Randomblue
1
Просто используйте этот запрос Google, который дает более 8000 ответов.
Harrymc
2
Технически, Chrome не представил эту функцию, он присутствовал почти во всех веб-браузерах в течение многих лет (по крайней мере, 15 или около того).
Synetech
Опера, к счастью, не имеет этой неудачи.
cweiske