9

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

如何更改 的值document.referrer

我试过这个

<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>

它不起作用,有什么想法吗?

4

2 回答 2

9

不能直接修改referrer,但是可以使用history.pushState()/history.replaceState()将一个新的URL推送到浏览器历史记录中(前提是你要推送的URL同域),然后当你离开时,新的URL就是referrer .

请注意,使用操作历史记录pushState会添加一个新的历史记录条目,但正在查看的页面保持不变,用户必须按浏览器的“返回”按钮两次才能返回一个实际页面。

但是,如果您使用replaceState,从要隐藏引荐来源网址的页面返回将转到新设置的 URL,因此请确保无论您用什么替换它,都会以某种方式将用户重定向回原始页面,而不是将其发送到404 或完全不同的页面。

于 2013-01-04T20:39:17.567 回答
4

该属性是只读的 - 这当然意味着您无法更改它。

你可以在这里读更多关于它的内容:

于 2013-01-04T19:20:07.733 回答