2014-01-08 3 views
1

Вот мой код:Статус XMLHttpRequest - 0, почему?

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 является идентификатор моей страны государственных прог

может любой сказать мне, где проблема?

/CountryTest.do - это шаблон url сервлета.

ответ

3
xmlhttp.onreadystatechange = processRequest(); 

Вы просто называется processRequestсразу и присвоила возвращаемое значение onreadystatechange.

Вы хотите назначить функцию, не вызывая ее.

0
xmlhttp.onreadystatechange = function() 
{ 
if (xmlhttp.readyState=='4') 
{ 
    alert(xmlhttp.responseText); 
} 
} 
Смежные вопросы