XMLHttpRequest状态为0为什么?

时间:2014-01-08 15:57:19

标签: javascript ajax

这是我的代码:

var xmlhttp;

function HttpObject(str)
{
    //alert("iam in process request");

    if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
        alert ("xmlhttp");
    }
    else if(window.ActiveXObject)
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        alert ("ms.xmlhttp");        
    }
    else
    {
        XmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }

    alert ("rdystate: " + xmlhttp.readyState);
    alert ("status: "   + xmlhttp.status);
    alert ("Text: "     + xmlhttp.statusText);
    xmlhttp.onreadystatechange = processRequest(); 
    xmlhttp.open("POST",'/CountryTest.do',true);
    xmlhttp.send(null);
}

function processRequest()
{
    if (xmlhttp.readyState === 0) {
        alert("u r in 0 :: The request is not initialized "); 
    }

    var target = document.getElementById("curlist");
    var res =  xmlhttp.responseText;
    alert(res);
    if (xmlhttp.readyState === 4 && xmlhttp.status === 200)
    {
        alert("in readystate");
    }
    else
    {
        alert("error in readystate");
    }
}

始终显示status 0

curlist是我所在国家/地区的ID

任何人都可以说我在哪里有问题吗?

/CountryTest.do是servlet的url模式。

2 个答案:

答案 0 :(得分:3)

xmlhttp.onreadystatechange = processRequest(); 

您刚刚立即致电processRequest ,并将其返回值指定为onreadystatechange

您想要在不调用它的情况下自行分配函数。

答案 1 :(得分:0)

xmlhttp.onreadystatechange = function()
{
 if (xmlhttp.readyState=='4')
 {
  alert(xmlhttp.responseText);
 }
}