ie下面出現Notice: Undefined index: HTTP_REFERER 的解決辦法

一:問題出現

發現這一問題是在一次開發當中作了一個跳轉在FF下面能正常跳轉,最後將項目傳到線上以後,測試的卻告訴我在IE下面不能跳轉,我開始還不相信,後來一測試,果然如此,通過最終的排除BUG,最後鎖定了是HTTP_REFERER這個常量的問題。 javascript

二:有的時候,在ie下面出現Notice: Undefined index: HTTP_REFERER,可是在FF下面卻能正常輸出

三:$_SERVER ['HTTP_REFERER'] 變量。這是什麼緣由呢?現我簡化一下代碼來說解解決辦法。

見下圖一: php

html代碼爲: html

<body>
<a href="javascript:$.dianJi();void(0)" name='lj' >點擊連接進行跳轉</a>
</body>
js代碼爲:
<script type="text/javascript">
$(function(){
	$.dianJi=function(){
		location.href="http://localhost/20130426/action.php?action=check";
	}
})
</script>


action.php頁面代碼爲: java

$action=$_GET['action'];
echo $_SERVER ['HTTP_REFERER'];

四:點擊連接,發現,在FF下面能正常輸出:

見圖二: app

可是,在IE下面卻報錯,見圖三: 函數

五:解決辦法

形成這種狀況的出現,估計是IE的BUG,那該怎麼解決呢?咱們在跳轉的以前想辦法,從新作一個跳轉的函數。 測試

下面是修改後的js代碼:(html代碼不作變更) url

$(function(){
	$.myRedirect=function(url) {
        var theLink = ''; 
        if (document.getElementById) {
           theLink = document.getElementById('redirect_link');
           if (!theLink) {
              theLink = document.createElement('a');
              theLink.style.display = 'none';
              theLink.id = 'redirect_link';
              document.body.appendChild(theLink);
           }   
           if (url) theLink.href = url;
        }   
        if ((theLink) && (theLink.click)) theLink.click();
        else location.href = url;
      }  
	
	$.dianJi=function(){
		var url="http://localhost/20130426/action.php?action=check";
		$.myRedirect(url);
	}
})


六:從新在IE下面測試:

運行結果見圖四: spa

七:問題解決

從圖四能夠發現,完美解決了以前的錯誤,並且在FF下面也照樣正常運行。 code

相關文章
相關標籤/搜索