Как обновить веб-страницу без браузера, спрашивая, хочу ли я снова отправить заявку

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

location.reload(true);

Я не ищу настройки настроек браузера. Я ищу альтернативный код для обновления, не спрашивая. enter image description here

Ответ 1

Это вызвано тем, что страница запрашивается POST вместо GET. Обновление обновит данные POST. Вы можете заставить get использовать window.location = window.location.href;.

Если вы хотите разрешить пользователям перезагружать страницу через свои элементы управления браузером, вам нужно будет реализовать шаблон PRG, который перенаправляет на GET после POST.

Ответ 2

Это запросит страницу, а не перезагрузится.

window.location = window.location;

Ответ 3

GET vs. POST

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

После POST вы должны немедленно выполнить GET, чтобы перезагрузить страницу с результатом POST. Затем вы можете обновить по желанию.

Пример:

page_1.html

<form method="POST" action="go.php"> ... </form>

go.php:

<?php
    // do stuff...
    header('Location: http://www.foo.com/page2.html');
?>

page2.html:

<script type="text/javascript"> location .reload (true); </script>

Ответ 4

Это контролируется в конце браузера, а не в вашем (т.е. вы НЕ МОЖЕТЕ его контролировать). Если вы хотите показать пользователю страницу, которая может быть обновлена ​​без опции repost, вам придется сделать это через перенаправление после публикации на страницу, которую вы получаете с помощью GET, а не POST.

Попробуйте перенаправить javascript. Или, альтернативно, POST-информация с использованием AJAX, которая будет означать обновление, перезагружает исходную страницу, а не результаты вашего сообщения ajax.

Ответ 5

вы можете сохранить свои данные в window.name и использовать трюк window.location = window.location.href. и когда onload, проверьте, есть ли у вас данные в window.name, верните его и удалите из него. Я часто использую window.name как "сессионное" хранилище для таких ситуаций.

Ответ 6

(Я испанский спикер, я сделаю все возможное) В моем случае у меня есть кнопка поиска открытых билетов в БД, поэтому мне нужно нажимать эту кнопку каждый раз, когда я хочу знать, есть ли новые, я разрешил следующую функцию javascript

<script type="text/javascript" language="javascript">  
    setTimeout('document.getElementById("btn_busca_ticket").click()', 10000);
</script>

где 10000 - время между каждым обновлением, (10 секунд)

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