J'écris un jsp / servlet et j'essaie d'obtenir la partie d'ancrage de l'URI E.G:
blabla.rdf#mark
3 Réponses :
Ce n'est pas possible car les clients n'envoient pas la "partie d'ancrage" au serveur
comme exemple, voici la demande exacte que Chrome générée après la soumission voir, no #foobar. Il n'ya donc aucun moyen d'une application de serveur peut le lire. P> Vous pouvez faire de la magie JavaScript pour stocker l'ancre dans un cookie ou dans un champ de saisie caché ou tout ce que vous êtes dans le VOODOO. Mais cela ne fonctionnera jamais pour les demandes qui ne sont pas originaires de vos propres sites. Il est plus simple de faire tout ce dont vous avez besoin sur la partie serveur de la chaîne de requête et utilisez l'ancre uniquement pour les tâches JavaScript uniquement - ou utilisez-la pour naviguer dans un simple document HTML - mais c'est tellement 90;). P> Voici la partie importante du RFC mentionné 1808: P> Notez que l'identifiant de fragment (et le «#» qui le précède) est
pas considéré comme une partie de l'URL. Cependant, comme il est couramment utilisé
Dans le même contexte de chaîne qu'une URL, un analyseur doit pouvoir être capable de
reconnaître le fragment quand il est présent et le mettre de côté dans le cadre de
le processus d'analyse. P>
blockQuote> p> http://example.com/# foobar code> (enregistré à l'aide de Wireshark): p>
Pour information, le RFC 1808 qui explique pourquoi la partie d'ancrage n'est pas envoyée au serveur.
Cette solution ne fonctionnerait que après em> un bouton d'envoi a été poussée, mais: vous pouvez utiliser JavaScript pour placer une valeur cachée sur votre formulaire défini sur la valeur du document.Location. Cela vous dirait exactement ce que le navigateur constate comme votre adresse. P>
Je suppose que vous voulez créer une application Web Ajax bookmable et vous souhaitez remplacer certains fragments du DOM sans recharger la page complète. (Sinon, vous pouvez utiliser des paramètres de requête.) Comme Sfussenegger Strong> Mentions, le navigateur ne transmet pas ' ancreur fort>' sur le serveur. La solution est sur le côté client. P>
JavaScript Malheureusement, il s'agit de deux demi-chaînes client-serveur. p>
Plus sur ceci à Ajaxpatterns . P> window.location.hash code> donne les informations d'ancrage. Vous pouvez ajouter un gestionnaire d'événements à l'événement
window.onload code> qui attrape
window.location.hash code> et le transmet au serveur dans un AJAX XHTTPQUEST. Vous attrapez la réponse et construisez-le dans le DOM. P>
Voici une question similaire pour PHP, avec une réponse similaire perçue: Stackoverflow.com/Questtions/1032242/...