Как я могу отправить хэш-ключ в параметре URL?

У меня есть приложение 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 $$$ в шаблоне и снова выполните замену на стороне сервера. Но есть так много мест, которые мне бы пришлось изменить ...

5
задан tvirtualw 8 July 2011 в 20:11
поделиться