【发布时间】:2011-01-10 13:45:27
【问题描述】:
如果我在 google 上搜索某些内容并单击结果 (mytestsite.com),则该站点的引用者将是 google 搜索的 URL。
现在在该站点上,有一个 JS 文件包含用于跟踪目的。但是该 JS 文件请求的引用者是 mytestsite.com ...处理 JS 请求的服务器是否无法知道它来自谷歌搜索?
【问题讨论】:
标签: javascript referrer
如果我在 google 上搜索某些内容并单击结果 (mytestsite.com),则该站点的引用者将是 google 搜索的 URL。
现在在该站点上,有一个 JS 文件包含用于跟踪目的。但是该 JS 文件请求的引用者是 mytestsite.com ...处理 JS 请求的服务器是否无法知道它来自谷歌搜索?
【问题讨论】:
标签: javascript referrer
我有点不清楚您要做什么,但您可以使用 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 - 这是最好的
脚本标签将始终引用获取它的文档。如果您在服务器上做一些特殊的事情,您可能需要考虑使用会话或 cookie。
【讨论】:
document.referrer。我的观点是,当请求 JS 时(仅在请求 HTML 时),服务器无法知道前一个站点的引用者,这就是问题所在。该解决方案的唯一区别是另一个答案是将引用者作为查询字符串而不是作为请求标头传递。我已经更新了我的答案以澄清意图和解决方案,但通常我认为人们误读了这个问题。
referer 属于“无法以编程方式修改”的forbidden header names。