Использование windows.location.replace для обновления страницы, не работающей с хешем в URL - PullRequest
5 голосов
/ 24 сентября 2010

У меня есть вызов AJAX, который заботится о некоторых настройках на стороне сервера (я использую это для входа в систему, переключения языков и т. Д.). Если и только если в результате этого вызова действительно изменились настройки на стороне сервера, я хочу обновить текущую страницу (без повторного размещения данных формы POST, если мы будем на странице сразу после POST). Простой JS в обратном вызове AJAX позаботится об этом:

window.location.replace( window.location.toString() );

Это работало нормально, пока я не начал работать с якорями. Допустим, мой URL-адрес похож на http://www.mysite.com/index/list#someplace, и я делаю вышеупомянутый вызов ajax, заканчивающийся window.location.replace, тогда ничего не происходит. Страница не перезагружается. Пока что тестируется на FF3.6 и IE7.

1 Ответ

6 голосов
/ 25 сентября 2010

Вы пробовали с:

window.location.hash = ''; //if you want to reload with an empty hash
window.location.reload(true); //reload the page and bypass the cache

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

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

...