Обновить страницу с помощью JavaScript не работает - PullRequest
2 голосов
/ 04 октября 2011



Я отправляю почтовый запрос на сервер, который inturn возвращает JSP. Теперь, если я использую кнопку обновления браузера, я получаю подтверждение для повторной отправки данных, и затем страница успешно перезагружается.

Однако, когда я пытаюсь обновить страницу, используя javascript, я не получаю никакого подтверждения, и перезагрузка также не работает. Я перепробовал все методы перезагрузки, такие как:

  • location.reload ()
  • window.location.reload ()
  • window.location.href = window.location.href
  • history.go (0);

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

Эта проблема возникает только в Chrome ... она работает в Firefox и IE !!

Ответы [ 5 ]

1 голос
/ 04 октября 2011

Метод reload может использовать кэш для перезагрузки страницы.Укажите параметр force, чтобы он получал страницу с сервера:

window.location.reload(true);
1 голос
/ 02 декабря 2013
parent.window.location.reload(true);

работал на Chrome для меня ... наконец

объяснение: parent.window

Ссылка на родителя текущего окна или подкадра.* Если у окна нет родителя, его родительское свойство является ссылкой на самого себя.

Когда окно загружается в, или, его родительский элемент является окном с элементом, внедряющим окно.*

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

Я перепробовал все возможные решения (вызовы ajax, различные фрагменты), но единственное, что мне помогло, - отключение сетевого кэша из Chrome. См. Здесь Почему Google Chrome не перезагружает мои скрипты? IНе думайте, что это решение для производства, но разработка может сэкономить вам время на поиски.Кажется, проблема в кеше chrome, и даже установка

window.location.reload(true);

не очищает кеш при перезагрузке.На ФФ работает отлично.

0 голосов
/ 07 марта 2018

Единственное решение - вызвать тот же URL с некоторым дополнительным значением.

Это обычный скрипт перезагрузки, он отлично работает в IE и FF, но не в Chrome & Safari.

window.location = location.href; 

Чтобы перезагрузка работала на всех типах браузеров, используйте:

window.location = location.href + '?session=' + sMath.floor((Math.random() * 1000000) + 1);

Протестировано на IE, FF, Chrome и Safari.

0 голосов
/ 04 октября 2011

Чтобы «обновить» страницу с помощью почтового запроса, вам необходимо отправить форму. Вы можете использовать любую форму, уже имеющуюся на странице, или создать ее программным способом.

var myForm = document.createElement("form");
myForm.action = "/my/url.jsp"; // Or use window.location, or something else.
myForm.method = "POST";
document.body.appendChild(myForm); // Needs to be in the DOM. Is not visible.
myForm.submit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...