使用POST请求但仍然没有responseText。为什么?

时间:2012-04-23 18:44:50

标签: javascript post xhtml xmlhttprequest

我只是试图遍历XHTML中的所有div元素http://www.w3.org/。我将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()
}
*/
}

1 个答案:

答案 0 :(得分:0)

您不能在发送请求后立即使用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);
    }
}