您如何通过 javascript include 获取 Url Referer?

Posted

技术标签:

【中文标题】您如何通过 javascript include 获取 Url Referer?【英文标题】:How do you get the Url Referer via a javascript include? 【发布时间】:2011-01-10 13:45:27 【问题描述】:

如果我在 google 上搜索某些内容并单击结果 (mytestsite.com),则该站点的引用者将是 google 搜索的 URL。

现在在该站点上,有一个 JS 文件包含用于跟踪目的。但是该 JS 文件请求的引用者是 mytestsite.com ...处理 JS 请求的服务器是否无法知道它来自谷歌搜索?

【问题讨论】:

【参考方案1】:

我有点不清楚您要做什么,但您可以使用 javascript 获取引荐来源网址:

document.referrer

...并在您对 JS 文件的请求中将其传递给服务器。有几种方法可以做到这一点......这是一种:

<script>
 var e = document.createElement("script");
 e.src = 'someJSfile.js?referrer='+document.referrer;
 e.type="text/javascript";
 document.getElementsByTagName("head")[0].appendChild(e);
</script>

【讨论】:

没有你回答标记为正确有点好笑。 document.referrer - 这是最好的【参考方案2】:

脚本标签将始终引用获取它的文档。如果您在服务器上做一些特殊的事情,您可能需要考虑使用会话或 cookie。

【讨论】:

推荐人可根据此处的其他答案获得。 @boomhauer:解决方案几乎相同,不同之处在于我没有提到document.referrer。我的观点是,当请求 JS 时(仅在请求 html 时),服务器无法知道前一个站点的引用者,这就是问题所在。该解决方案的唯一区别是另一个答案是将引用者作为查询字符串而不是作为请求标头传递。我已经更新了我的答案以澄清意图和解决方案,但通常我认为人们误读了这个问题。 这个答案的第二部分是错误的,例子不能工作。 referer 属于“无法以编程方式修改”的forbidden header names。 @iamnotmaynard:好地方。回到我写这个答案的时候,我的大部分工作都是专门针对 IE 7 的,它不会抛出那些被禁止的标题名称。

以上是关于您如何通过 javascript include 获取 Url Referer?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中同时使用多个方法

如何通过 JavaScript 获取域名? [复制]

如何通过 JavaScript 获取域名? [复制]

我如何通过第三次答复做出我的JavaScript答复?

通过 JavaScript 连接电脑音源

通过 Firebug 控制台加载 javascript