通过引用者发送位置哈希
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;
【讨论】:
哈希永远不会被发送到服务器。它只在客户端有应用程序。以上是关于通过引用者发送位置哈希的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 iFrame 中使用 JavaScript 获取 iFrame 父页面的引用者?