Comment puis-je soumettre une clé de hachage dans un paramètre d'URL?

J'ai un Spring-MVC de l'application avec Freemarker que la vue de composant.

Dans mes modèles, plusieurs liens sont générés qui renvoient à ma demande et qui comprennent des paramètres d'URL contenant une clé de hachage (#).

Exemple:

paramètre: Q#106368 11

URL générée par Freemarker avec codées param: testurl.html?key=Q%23106368%2011

- Je utiliser JavaScript pour rediriger vers cette URL (raison: j'ai utiliser JS pour gérer le chargement de 2 images en même temps).

La méthode de redirection est simple:

    function redir(url) {
        window.location.href = url;
    }

La JS appel généré par Freemarker ressemble

<a href="javascript:redir('http://localhost:8080/testappp/testurl.html?key=Q%23106368%2011');">test</a>

Mon problème est que le navigateur /Javascript reconvertit l'URL encodée paramètre, pense qu'il y a un # et coupe.

Lorsque j'utilise window.location.href='http://...' directement, il fonctionne. Uniquement lorsque vous utilisez le paramètre de méthode, il semble être comme par magie URL décodé puis la redirection ne fonctionne pas car l'URL est coupée à la #.

Est-il un moyen facile de transmettre le paramètre correctement?

Je suis conscient que je pourrais remplacer le #, par exemple, avec $$$hash$$$, dans le modèle et ne le remplacement du côté du serveur de nouveau. Mais il y a tellement d'endroits que je dois changer...

OriginalL'auteur tvirtualw | 2011-07-08