2010-01-28 64 views
30

如果我在google上搜索某些內容並點擊結果(mytestsite.com),則該網站的引用者將是Google搜索的網址。如何通過JavaScript包含Url Referer?

現在在該網站上,有一個JS文件包含用於跟蹤目的..但是,該JS文件請求的引用者是mytestsite.com ...是否沒有辦法讓服務器處理JS請求知道它起源於谷歌搜索?

回答

4

腳本標記將始終引用正在採集它的文檔。如果你在服務器上做了一些特殊的事情,你可能要考慮使用會話或cookie。

+1

引用者可以通過這裏的其他答案。 – 2013-08-26 22:33:10

+2

@boomhauer:解決方案几乎相同,不同之處在於我沒有提到'document.referrer'。我的觀點是,當JS被請求時服務器無法知道前一個站點的引用者(只有在請求HTML時),這就是問題所在。解決方案的唯一區別是另一個答案是將引用者作爲查詢字符串傳遞,而不是作爲請求標頭。我已經更新了我的答案,以澄清意圖和解決方案,但通常我認爲人們誤解了這個問題。 – 2013-08-29 11:49:59

+0

該答案的第二部分是錯誤的,該示例無法正常工作。 'referer'是[禁止標題名稱](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_​​header_name),它「不能以編程方式修改」。 – iamnotmaynard 2016-06-24 18:03:47

87

我對你正在嘗試做的有點不清楚,但可以使用搶用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> 
+1

有點不好意思,你沒有回答標記爲正確的。 'document.referrer' - 這是最好的 – 2015-06-04 08:12:48