У меня есть приложение Spring-MVC с Freemarker в качестве компонента представления.
В моих шаблонах несколько ссылок генерируются, которые указывают на мое приложение и включают параметры URL, содержащие хэш-ключ ( #
).
Пример:
параметр: Q # 106368 11
URL-адрес, сгенерированный Freemarker с закодированным параметром: testurl.html? Key = Q% 23106368% 2011
Я использую JavaScript для перенаправления на этот URL (причина: я использую JS для управления загрузкой двух кадров одновременно).
Метод перенаправления прост:
function redir(url) {
window.location.href = url;
}
JS-вызов, сгенерированный Freemarker, выглядит как
<a href="javascript:redir('http://localhost:8080/testappp/testurl.html?key=Q%23106368%2011');">test</a>
Моя проблема в том, что браузер / Javascript преобразует обратно закодированный параметр URL, думает, что есть #
, и отключает там.
Когда я использую window.location.href = 'http: // ...'
напрямую, он работает. Только при использовании параметра метода кажется, что URL-адрес декодируется волшебным образом, а затем перенаправление завершается неудачно, потому что URL-адрес обрезается на #
.
Есть ли простой способ правильно передать параметр?
] Я знаю, что могу заменить #
, например с помощью $$$ hash $$$
в шаблоне и снова выполните замену на стороне сервера. Но есть так много мест, которые мне бы пришлось изменить ...