Как перезагрузить страницу без предупреждения POSTDATA в Javascript? - PullRequest
63 голосов
/ 20 февраля 2009

Я хочу перезагрузить страницу, используя:

window.location.reload(true); 

Но я получаю предупреждение POSTDATA, потому что функция обновления хочет отправить предыдущие данные формы POST. Как я могу обновить мою страницу без этого предупреждения?

ОБНОВЛЕНО: У меня нет контроля над проектом! Я не могу обойти сам POST!

Ответы [ 15 ]

0 голосов
/ 25 апреля 2019

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

<a href=".">Continue</a>

конечно, я знаю, что вам может понадобиться автоматическое решение, но это поможет во многих случаях

удачи

0 голосов
/ 15 октября 2018

Вот решение, которое должно работать всегда и не удаляет хеш.

let currentPage = new URL(window.location.href);
currentPage.searchParams.set('r', (+new Date * Math.random()).toString(36).substring(0, 5));
window.location.href = currentPage.href;
0 голосов
/ 14 мая 2018

с использованием метаобновления в html

<meta http-equiv='refresh' content='1'>

с использованием метаобновления в php

echo "<meta http-equiv='refresh' content='1'>"
0 голосов
/ 08 ноября 2016

Я написал функцию, которая будет перезагружать страницу без пост-отправки и работать с хешами.

Я делаю это, добавляя / изменяя параметр GET в URL-адресе с именем reload, обновляя его значение текущей меткой времени в мс.

var reload = function () {
    var regex = new RegExp("([?;&])reload[^&;]*[;&]?");
    var query = window.location.href.split('#')[0].replace(regex, "$1").replace(/&$/, '');
    window.location.href =
        (window.location.href.indexOf('?') < 0 ? "?" : query + (query.slice(-1) != "?" ? "&" : ""))
        + "reload=" + new Date().getTime() + window.location.hash;
};

Имейте в виду, что если вы хотите вызвать эту функцию в атрибуте href, реализуйте ее следующим образом: href="javascript:reload();void 0;", чтобы она успешно работала.

Недостатком моего решения является то, что он изменит URL, так что эта «перезагрузка» не является реальной перезагрузкой, а представляет собой загрузку с другим запросом. Тем не менее, он может соответствовать вашим потребностям, как и для меня.

0 голосов
/ 03 июля 2009

Если вы используете GET метод вместо POST, тогда мы не сможем заполнить форму значений. Если вы используете window.opener.location.href = window.opener.location.href;, тогда мы можем запустить базу данных и получить значение, но единственное, что JSP не обновляет событие, хотя у скрипта есть значения формы.

...