更改referrer的值

9
如何更改 document.referrer 的值?
我尝试了以下代码:

可能是重复问题:
如何在Javascript中手动设置REFERER标头?

<body>
<center><a href="test.php" target="_self">self</a></center>
<script type="text/javascript">
    alert( document.referrer);
    document.referrer="test";
    alert( document.referrer);
</script>
</body>

它不能工作,有什么想法吗?


2
你想要实现什么目标? - SLaks
1
类似于https://dev59.com/lGkw5IYBdhLWcg3w4eiS。 - Roonaan
3
不行,因为要防止引荐人欺骗。https://dev59.com/XEjSa4cB1Zd3GeqPI9zj - SeanLi
请查看此链接:https://dev59.com/jlHTa4cB1Zd3GeqPUce1 - Shortys Oberto Dutari
2个回答

9
您无法直接修改referrer,但是您可以使用 history.pushState() / history.replaceState() 将新的URL推入浏览器历史记录中(前提是您想推送的URL具有相同的域名),然后当您跳转到其他页面时,新的URL将成为referrer。
请注意,使用pushState操纵历史记录会增加一个新的历史记录条目,但正在查看的页面保持不变,用户需要按两次他们浏览器的“返回”按钮才能返回一个实际的页面。
但是,如果您使用replaceState,从您希望隐藏referrer的页面返回时将转到新设置的URL,请确保您用某种方式替换它,使用户能够重定向回原始页面,而不是将他们发送到404或完全不同的页面。

1
请注意,pushState函数受到同源策略的限制。不允许更改域名。 - Serge Stroobandt
你是一个英雄。谢谢。 - Accountant م

4

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