陷入XMLHttpRequest

时间:2012-01-10 03:46:29

标签: javascript xmlhttprequest

我制作了一个简单的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 个答案:

答案 0 :(得分:1)

仅仅是我还是你传递“true”作为httpxml.open的第三个参数?这意味着“异步执行请求”。将此参数更改为“false”或设置在网络操作完成时调用的readystate回调函数。

更好的示例代码: http://www.w3.org/TR/XMLHttpRequest/

答案 1 :(得分:0)

您应该在之前添加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); 
    }); 
});