Как обновить веб-страницу без браузера, спрашивая, хочу ли я снова отправить заявку
У меня есть следующий код, чтобы обновить мою веб-страницу. Он отлично работает, если я ничего не передаю с помощью 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 секунд)
Если у вас нет кнопки, вы можете создать скрытую с идентификатором и отправить
(это не так изящно, но работает для меня)