2010-01-11 11 views
8

Ich habe eine Seite, wo in Javascript ich den Standort-Hash etwas hinzufügen wie: location.hash = "initial_source = previous_referrer".Senden Sie einen Standort-Hash über einen Referrer

Anschließend wird eine window.location durchgeführt, um umzuleiten.

Allerdings erhält der Empfänger den Referrer in seiner Anfrage ohne den Hash (#) Teil.

Ist es möglich, die URL auf der ersten Seite irgendwie zu ändern, ohne eine Weiterleitung, so ist der endgültige Referrer was gewünscht?

Vielen Dank.

Antwort

15

Zuerst wird der hash Abschnitt einer URL wird nur auf der Client-Seite verwendet. Es wird nie erscheinen in Serverprotokollen, Anforderungen oder als Teil einer REFERRER Zeichenfolge.

Zweitens, der einzige Teil der URL, der ohne die Seite Aktualisierung auf der Clientseite geändert werden kann, ist der Hash. Kombiniere das mit meiner ersten Aussage, und es wird klar, dass du nicht tun kannst, was du willst.

Die beste Vorgehensweise ist zu testen, ob initial_referrer in der Abfragezeichenfolge festgelegt ist. Wenn dies nicht der Fall ist, leiten Sie die Seite vor dem Laden der Seite auf die gleiche Seite um, fügen Sie Ihre Werte jedoch zur Abfragezeichenfolge hinzu. Jetzt, wenn sich Ihre Seite über location.href = ändert, wird die korrekte Referrer-Information gesendet.

+0

Hmm ... ich verstehe. Ich fragte mich, ob ich eine weitere Anfrage vermeiden könnte. –

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

Der Hash wird niemals an einen Server gesendet. Es hat nur Anwendung auf der Client-Seite. –

Verwandte Themen