通过引用发送位置哈希

11

我有一个页面,在JavaScript中添加了以下代码到 location hash 中:

location.hash = "initial_source=previous_referrer"

之后进行 window.location 跳转。但是接收者在请求中获取的 Referrer 不包括 Hash(#)部分。

是否可能在不进行重定向的情况下修改初始页面的 URL,以便最终 Referrer 是期望的内容?

谢谢。

2个回答

17

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

其次,在客户端中,唯一可以更改且无需刷新页面的部分是hash。因此,结合我之前的陈述,很明显你无法做你想做的事情。

最好的方法是在页面加载之前检查查询字符串中是否设置了initial_referrer。如果没有,在重定向到相同的页面时将值添加到查询字符串中。现在,当您的页面通过location.href =更改时,将发送正确的引荐者信息。


嗯...我明白了。不知道能否避免再次请求。 - MB.

1
location.href = redirect_url.split("#")[0] + "#" + document.referrer;

4
哈希值永远不会被发送到服务器,它只在客户端使用。 - Doug Neiner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接