Застрял в XMLHttpRequest - PullRequest
       2

Застрял в XMLHttpRequest

0 голосов
/ 10 января 2012

Я сделал простой html для игры с XHR, но не получил ответа от httpxml.responseText; Но скрипт работает в консоли Safari.

<html><head></head><body>
        <div id="myDiv"></div>
        <button type="button" onclick="loadXMLDoc()">Change Content</button>
        <script type="text/javascript">
            function loadXMLDoc()
            {
            httpxml = new window.XMLHttpRequest;
            httpxml.open('GET','resources/xml/test.xml',true);
            httpxml.send();
            text = httpxml.responseText;
            alert(text);// there's no text in the alert window
            document.getElementById("myDiv").innerHTML=text;
            }
        </script>
    </body>
</html>

Ответы [ 2 ]

1 голос
/ 10 января 2012

Это только я или вы передаете "true" в качестве третьего параметра httpxml.open? Это означает «выполнить запрос асинхронно». Либо измените этот параметр на «false», либо установите функцию обратного вызова readystate, которая вызывается после завершения сетевой операции.

Лучший пример кода здесь: http://www.w3.org/TR/XMLHttpRequest/

0 голосов
/ 10 января 2012

Вы должны добавить тест readyState до.

function loadXMLDoc()
{
  httpxml = new window.XMLHttpRequest();
  httpxml.open('GET','yourpage.xml',true);
  httpxml.send(null);
  httpxml.onreadystatechange = function() {
  if(httpxml.readyState == 4) {
    text = httpxml.responseText;
    alert(text);
    document.getElementById("myDiv").innerHTML=text;
    }
  }
}

Но для этого я буду использовать jquery, так что проще:

$('#mybutton').click(function(){ 
    $.GET('yourpage.xml',function(data){
      $('#mydiv').html(data); 
    }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...