HTTP Header referer這玩意主要是告訴人們我是從哪兒來的,就是告訴人家我是從哪個頁面過來的,可以用于統計通路本網站的使用者來源,也可以用來防盜鍊。擷取這個東西最好的方式是js,如果在伺服器端擷取(PHP方法如:$_SERVER['HTTP_REFERER']) 不靠譜,人家可以僞造,用js擷取最好,人家很難僞造,
方法:利用js的 document.referer 方法可以準确地判斷網頁的真實來路。 目前百度統計,google ads統計,CNZZ統計,都是用的這個方法。防盜鍊也很簡單了,js裡判斷來路url如果不是本站不顯示圖檔。
衆所周知,我們web開發人員痛恨IE浏覽器,因為IE不支援标準,标準外的預設行為又和其他浏覽器經常不一緻:
在IE中用javascript做跳轉,比如用window.location.href = “”; google如果使用document.referrer無法取到浏覽器請求的HTTP referrer,因為IE清空了
而其他主流浏覽器Firefox和Chrome都會保留referrer,沒辦法,這意味着IE又要享受“部長級”特殊待遇了:
以下代碼可以解決ie的這個問題:
//檢測如果是ie浏覽器,則手動的給增加一個referer
這樣的原理就是給IE浏覽器的頁面偷偷加了個連結,然後自動點這個連結,于是referrer就能保留了。
- var url = 'http://www.92csz.com';
- if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || /MSIE(\d+\.\d+);/.test(navigator.userAgent))
- {
- var referLink = document.createElement('a');
- referLink.href = url;
- document.body.appendChild(referLink);
- referLink.click();
- }
- else
- {
- location.href = url;
- }
本文位址: http://www.92csz.com/42/1243.html
如非注明則為本站原創文章,歡迎轉載。轉載請注明轉載自: moon's blog