Javascript 已使用POST请求,但仍然响应文本不完整。为什么?

Javascript 已使用POST请求,但仍然响应文本不完整。为什么?,javascript,post,xhtml,xmlhttprequest,Javascript,Post,Xhtml,Xmlhttprequest,我只是想在这里遍历XHTML中的所有div元素。我将HTML复制到w3c.HTML并运行以下代码。 但是responseText不完整,因此我的代码失败 我最初使用GET请求,我认为这就是问题所在。我认为这是一个问题,但它仍然没有解决问题 function traverseHtml() { var xmlhttprequest=new XMLHttpRequest(); xmlhttprequest.open('POST','w3c.html',false); xmlhttprequest.se

我只是想在这里遍历XHTML中的所有div元素。我将HTML复制到w3c.HTML并运行以下代码。 但是responseText不完整,因此我的代码失败

我最初使用GET请求,我认为这就是问题所在。我认为这是一个问题,但它仍然没有解决问题

function traverseHtml()
{
var xmlhttprequest=new XMLHttpRequest();
xmlhttprequest.open('POST','w3c.html',false);
xmlhttprequest.send(null);
var respText=xmlhttprequest.responseText;
alert('The ResponseText is '+respText);
/*var xml=(new DOMParser()).parseFromString(respText,'text/xml');
var result=xml.evaluate('//div',xml,null,XPathResult.ANY_TYPE,null);
var node=result.iterateNext();
alert(node);
while(node)
{
alert(node.childNodes[0].nodeName);
node=result.iterateNext()
}
*/
}

发送请求后不能仅使用responseText属性。您需要创建一个完成后将被调用的函数,如下所示:

var xmlhttprequest;

xmlhttprequest = new XMLHttpRequest();
xmlhttprequest.open('GET', 'w3c.html', true);
xmlhttprequest.send();
xmlhttprequest.onreadystatechange = function () {
    // Check if request done and it didn't fail
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        alert('The ResponseText is '+xmlhttp.responseText);
    }
}

但我使用的是同步机制false。脚本不应该等待open返回吗?应该,但使用异步机制要好得多,特别是因为它允许您检查进度,而不是将浏览器冻结到完成。您是否尝试运行代码,因为我在firefox上的responseText仍然不完整。此外,我必须使用状态代码0而不是200。忘了状态代码吧,它只有在没有webserver的情况下才是0。