You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在跳转至somelink.com时设置document.referrer为指定值?

关于跳转后自定义document.referrer的可行性分析

嘿,直接给你结论:你想要的效果确实无法实现,下面给你拆解具体原因:

首先看你写的这段代码:

<script> 
Object.defineProperty(document, "referrer", {get : function(){ return "myreferrer.com"; }}); 
//document.location="somelink.com"; 
</script>

你修改的是当前页面的document.referrer的getter,但这个改动只在当前页面生效。一旦执行document.location="somelink.com"跳转,当前页面会被浏览器卸载,所有脚本停止运行,新加载的somelink.com页面是完全独立的执行环境——它的document.referrer由浏览器根据实际导航来源决定,和你之前页面的脚本修改毫无关系。

为什么没法控制新页面的document.referrer?

document.referrer的值本质是浏览器根据导航行为生成的安全属性:

  • 当从页面A跳转到页面B时,浏览器会在请求页面B的HTTP头里带上Referer字段(值为页面A的URL),页面B的document.referrer就对应这个字段的值;
  • 前端脚本无法直接篡改新页面的document.referrer,这是浏览器的安全机制,目的是防止恶意网站伪造来源信息,破坏Referer机制的可信度。

有没有变通方法?

目前没有合法的前端手段能让跳转后的页面document.referrer变成你指定的任意值:

  • 用<meta name="referrer">标签只能控制Referer的发送策略(比如不发送、仅同源发送等),但无法指定自定义值;
  • 无论是脚本跳转、a标签跳转还是表单提交,最终的referrer都由浏览器根据实际来源生成,你没法强制设置成myreferrer.com。

简单来说,浏览器不会允许你伪造跳转后的来源信息,这是安全机制的一部分,所以你的需求目前没法实现。

内容的提问来源于stack exchange,提问作者JAM AICA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:03:08