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