我有一个页面,在JavaScript中添加了以下代码到 location hash 中:
location.hash = "initial_source=previous_referrer"
之后进行 window.location 跳转。但是接收者在请求中获取的 Referrer 不包括 Hash(#)部分。
是否可能在不进行重定向的情况下修改初始页面的 URL,以便最终 Referrer 是期望的内容?
谢谢。
我有一个页面,在JavaScript中添加了以下代码到 location hash 中:
location.hash = "initial_source=previous_referrer"
之后进行 window.location 跳转。但是接收者在请求中获取的 Referrer 不包括 Hash(#)部分。
是否可能在不进行重定向的情况下修改初始页面的 URL,以便最终 Referrer 是期望的内容?
谢谢。
首先,URL的hash
部分仅在客户端使用。它永远不会出现在服务器日志、请求或REFERRER
字符串的一部分。
其次,在客户端中,唯一可以更改且无需刷新页面的部分是hash。因此,结合我之前的陈述,很明显你无法做你想做的事情。
最好的方法是在页面加载之前检查查询字符串中是否设置了initial_referrer
。如果没有,在重定向到相同的页面时将值添加到查询字符串中。现在,当您的页面通过location.href =
更改时,将发送正确的引荐者信息。
location.href = redirect_url.split("#")[0] + "#" + document.referrer;