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

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

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

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

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

谢谢。

【问题讨论】:

    标签: javascript redirect referrer


    【解决方案1】:

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

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

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

    【讨论】:

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

    【讨论】:

    • 哈希永远不会被发送到服务器。它只在客户端有应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多