8

我有一个页面,在 Javascript 中我添加到位置哈希中,例如:location.hash = "initial_source=previous_referrer"。

之后完成一个 window.location 以进行重定向。

然而,接收者在他的请求中获得了没有哈希 (#) 部分的引用者。

是否可以在没有重定向的情况下以某种方式修改初始页面中的 URL,因此最终的引用者是我们想要的?

谢谢你。

4

2 回答 2

16

首先,hashURL 的一部分仅在客户端使用。它永远不会出现在服务器日志、请求中或作为REFERRER字符串的一部分。

其次,在客户端不刷新页面的情况下,唯一可以更改的 URL 部分是哈希。所以把它和我的第一句话结合起来,很明显你不能做你想做的事。

最好的做法是测试initial_referrer查询字符串中是否设置了 。如果不是,则在页面加载之前,重定向到同一页面,但将您的值添加到查询字符串中。现在,当您的页面通过location.href =正确的推荐人信息发生更改时,将被发送。

于 2010-01-11T01:23:07.687 回答
1
location.href = redirect_url.split("#")[0] + "#" + document.referrer;
于 2010-01-11T00:54:14.363 回答