簡體   English   中英

AJAX在Internet Explorer 9中不起作用

[英]AJAX not working in Internet Explorer 9

這是我的功能:

<script type="text/javascript">
function loadXMLDoc() {
    var x = document.getElementById("trazi_drzava");
    var xmlhttp;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("trazi_grad").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "gradovi.php?selected=" + x.value, true);
    xmlhttp.send();
}
</script>

我這樣稱呼它:

 <select name="td" id="trazi_drzava" onchange="loadXMLDoc()">
    <option value="">Država</option>
    <?php
    $sel_grad_arr=array();
    $sel_grad_arr[]="<select name='tg' id='grad0'>  
    <option value=''>Grad</option</select>";
    if($q=mysql_query("SELECT drzava_id,drzava FROM drzava")){
    while($r=mysql_fetch_assoc($q)){
        echo '<option value="'.$r['drzava_id'].'">'.$r['drzava'].'</option>';
       }
     }else echo mysql_error().__LINE__;
    ?>
    </select><select name="tg" id="trazi_grad">
      //code that ajax should load        
    </select>

它適用於大多數瀏覽器,但是對於Internet Explorer 9則根本不起作用。 有人知道為什么嗎?

更新:那時候我沒有做到這一點。 所以我改變了整體工作的邏輯。 謝謝大家的回答。

我知道這是一個非常老的問題,但是仍然沒有一個正確答案。

正確的操作順序是:

  1. 創建您的請求對象
  2. open連接
  3. 設置onreadystatechange偵聽器
  4. send請求

步驟2和3的順序錯誤,這會導致某些瀏覽器出現問題。

現在回答還為時已晚,但這是應該解決此問題的解決方案。

這個星期我也有類似的問題。 改變

xmlhttp.open("GET", "gradovi.php?selected=" + x.value, true);

xmlhttp.open("POST", "gradovi.php?selected=" + x.value, true);

這解決了我的問題。 檢查此處: 此PHP腳本在Internet Explorer和Microsoft Edge中不起作用,但在Chrome / Firefox / Safari / Opera中起作用

也許是緩存問題。 參數測試設置為時間戳值,類似於:

xmlhttp.open("GET","gradovi.php?selected="+x.value+"&t="+parseInt(new Date().getTime().toString().substring(0, 10)),true);
xmlhttp.send();

問候!

檢查您的請求如何發送到服務器。 雙引號是什么樣子? IE9(至少使用jQuery)不會根據此文章正確編碼雙引號: 為什么此jQuery Ajax調用僅在IE9中失敗(即使在IE8和IE7中也可以正常工作)

暫無
暫無

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

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