2010-01-11 9 views
8

J'ai une page où en javascript j'ajoute quelque chose comme: location.hash = "initial_source = previous_referrer".Envoyer un hash de localisation via un referrer

Ensuite, une fenêtre window.location est effectuée afin de rediriger.

Toutefois, le destinataire reçoit le référent dans sa requête sans la partie de hachage (#).

Est-il possible de modifier en quelque sorte l'URL dans la page initiale, sans redirection, de sorte que le référant final est ce que vous souhaitez?

Merci.

Répondre

15

D'abord, la partie hash d'une URL est utilisée du côté client uniquement. Il n'apparaîtra jamais dans les journaux du serveur, les requêtes ou dans le cadre d'une chaîne REFERRER. Deuxièmement, la seule partie de l'URL qui peut être modifiée sans l'actualisation de la page côté client est le hachage. Donc combinez cela avec ma première déclaration, et il devient clair que vous ne pouvez pas faire ce que vous voulez. Le meilleur plan d'action consiste à tester si initial_referrer est défini dans la chaîne de requête.

Si ce n'est pas le cas, avant le chargement de la page, redirigez vers la même page mais ajoutez vos valeurs à la chaîne de requête. Maintenant, lorsque votre page change via location.href =, les informations de provenance correctes seront envoyées.

+0

Hmm ... Je comprends. Je me demandais si je pouvais éviter une autre demande. –

1
location.href = redirect_url.split("#")[0] + "#" + document.referrer; 
+4

Le hachage ne sera jamais envoyé à un serveur. Il a seulement une application côté client. –