Проблема с Ajax в IE - PullRequest
       3

Проблема с Ajax в IE

1 голос
/ 12 ноября 2010

Я использую Ajax в своем приложении.Он отлично работает во всех браузерах, но не во всех версиях IE.Вот код, который я написал, пожалуйста, посмотрите и скажите, где я не прав.Вот код:

<script type="text/javascript">
  function loadXMLDoc(str) {
    document.getElementById('spinner').style.display = "block";

    if (str == "") {
      document.getElementById("pickZone").innerHTML = "";
      document.getElementById('spinner').style.display = "none";
      return;
    }



    if (window.XMLHttpRequest) {
      xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
          xmlhttp = false;
        }
      }
    }



    xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById('spinner').style.display = "none";
        document.getElementById("pickZone").innerHTML = xmlhttp.responseText;
      }
    }

    xmlhttp.open("GET", "getPickZone.jsp?q=" + str, true);
    xmlhttp.send();
  }
</script>

Ответы [ 2 ]

5 голосов
/ 12 ноября 2010

Если вы не против использования jQuery, вы можете просто использовать:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function loadXMLDoc(str) {
  $('#spinner').css({display:"block"});
  $('#pickZone').html('');
  if (str != '') {
    $.ajax({
      type: "GET",
      url: "getPickZone.jsp",
      data: {q:str},
      success: function(xml) {
        $('#spinner').css({display:"none"});
        $('#pickZone').html(xml);
      }
    });
  }
}
</script>

Это может немного привести в порядок и решить проблемы с кросс-совместимостью.

0 голосов
/ 13 декабря 2012

используйте xmlhttp.send(null) вместо xmlhttp.send() и лучше используйте

xmlhttp = new ActiveXObject("MsXML2.XMLHTTP");

также у нас есть

MsXML[i] i = 1,2,3,4,5,..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...