通过引用者发送位置哈希

Posted

技术标签:

【中文标题】通过引用者发送位置哈希【英文标题】:Send a location hash through a referrer 【发布时间】:2011-01-03 14:27:48 【问题描述】:

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

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

但是接收者在他的请求中获得了没有哈希 (#) 部分的引荐来源。

是否有可能以某种方式修改初始页面中的 URL,而无需重定向,因此最终的引荐来源是期望的?

谢谢。

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

嗯...我明白了。想知道我是否可以避免另一个请求。【参考方案2】:
location.href = redirect_url.split("#")[0] + "#" + document.referrer;

【讨论】:

哈希永远不会被发送到服务器。它只在客户端有应用程序。

以上是关于通过引用者发送位置哈希的主要内容,如果未能解决你的问题,请参考以下文章

隐藏实际的链接引用者,如谷歌

检查 PHP 中的引用者

代理模式

是否可以在 iFrame 中使用 JavaScript 获取 iFrame 父页面的引用者?

您如何通过 javascript include 获取 Url Referer?

API 密钥 浏览器 API 密钥与此 API 一起使用时不能有引用者限制