1

При попытке перезагрузить / обновить страницу после отправки формы появляется следующее всплывающее окно:

Но есть только 2 варианта: продолжить или отменить. Что делать, если я хочу перезагрузить, но НЕ повторно отправить форму?

1 ответ1

1

ну, ты не можешь на самом деле. Все это зависит от того, как сайт закодирован. Даже если бы вы могли это сделать, вы бы, вероятно, прервали свою сессию.

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

Вы получаете сообщение, потому что ваш браузер отправляет POST вместо GET.

По умолчанию браузер повторно отправляет состояние последней команды, отправленной на сервер, что в данном случае является POST, результатом которого стал документ; тот самый документ, который вы хотите перезагрузить.

Это часто встречается, когда несколько страниц связаны друг с другом в многоэтапную отправку ("мастер"). Для сохранения информации о состоянии на нескольких страницах (например, адрес для выставления счетов, введенный на шаге 2) требуются такие вещи, как файлы cookie, память сеанса на стороне сервера и значения форм.

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

Есть две общие проблемы с отправкой формы во второй раз. Первая опасность состоит в том, что обработка уже произошла на сервере, и запрос на повторную обработку будет неправильным (как, например, заказ одного и того же элемента дважды).

Во-вторых, данные могут накапливаться на стороне сервера в результате ваших сообщений, и вы можете дублировать эти данные. это похоже на добавление товара в корзину один раз, но обнаружение, что есть два его экземпляра. Поскольку это произошло ненормально, за пределами ожидаемого потока приложения, разработчик может не иметь возможности учесть ненормальное состояние данных, вызвавшее какой-либо сбой или выполнение действия большее количество раз, чем желательно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .