簡體   English   中英

Firefox中的Ajax問題

[英]Ajax issue in Firefox

我通過使用AJAX調用頁面來計算鏈接的點擊次數,但是在Firefox中,顯然是因為從未真正加載過被調用的頁面,出於某些原因,Firefox從未調用它。 似乎單擊了鏈接,然后Firefox進行了AJAX調用,但由於頁面更改為href中的實際鏈接,Firefox才真正被發送(在Firebug中顯示為紅色,在Fiddler中未顯示任何符號)。 它在IE和Chrome中運行良好,如果我將鏈接更改為target =“ _ new”,則它將在Firefox中運行。 我在犯某種愚蠢的錯誤嗎?

<HTML>
<HEAD>
<script type="text/javascript">
function adtrk(cde){
var ajaxRequest;  // The variable that makes Ajax possible!
    var r=Math.random();
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }

    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var ajaresp = ajaxRequest.responseText;
        }
    }

    ajaxRequest.open("GET", "/atr.php?cde=" + cde + "&r=" + r, true);
    ajaxRequest.send(null);
}

</script>
</HEAD>
<BODY>
<a onclick="adtrk('zip1'); return true;" href="http://www.google.com"><img src="/images/img.jpg"></a>
</BODY>
</HTML>

當您加載新頁面時,所有打開的AJAX請求都將被取消(通過瀏覽器)。 您的服務器可能永遠都看不到點擊計數請求。

要么總是在新窗口中打開鏈接,要么使用其他機制來計算點擊次數,例如代理/重定向。

頁面在ajax請求完成之前更改。 您應該等待ajax請求結束,然后才能通過同步運行來更改頁面:

ajaxRequest.open("GET", "/atr.php?cde=" + cde + "&r=" + r, false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM