2015-05-11 2 views
1

Я пытаюсь работать с xmlhttprequests, который не работает. При вставке окна предупреждения я получаю статус 0. Не могу понять, что случилось.Проблемы с XMLhttprequest

function submitChat() { 
 
    if (form1.uname.value != '' && form1.msg.value != '') { 
 
     var uname = form1.uname.value; 
 
     var msg = form1.msg.value; 
 
     var xmlhttp = new XMLHttpRequest(); 
 
     alert(xmlhttp.status); 
 
     xmlhttp.onreadystatechange = function() { 
 
     if (xmlhttp.readystate == 4 && xmlhttp.status == 200) { 
 
      document.getElementById('chatlogs').innerHTML = xmlhttp.responseText; 
 
      } 
 
     } 
 
     xmlhttp.open("GET", "insert.php?uname=" + uname + "&msg=" + msg, true); 
 
     xmlhttp.send(); 
 
    } else { 
 
     alert("All Fields are Mandatory !!!"); 
 
     return; 
 
    } 
 
}
<form name="form1" action="#">`` Chatname: 
 
    <input type="text" name="uname" /> 
 
    <br/> 
 
    <textarea name="msg"></textarea> 
 
    <a href="javascript: submitChat()"> Send</a> 
 
    <br/> 
 
    <br/> 
 
</form> 
 

 
<div id="chatlogs"> 
 
    Loading Chat History !!!!!!!!!! 
 
</div>

+0

НЕ предупреждайте, когда вы делаете Ajax. Вместо этого сделайте 'window.console && console.log (xmlhttp.status);' внутри onreadystatechange – mplungjan

+0

Я вижу спасибо. То, что я пытаюсь сделать, это попытаться выяснить, почему код не работает. Следовательно, я подумал, получив предупреждение о xmlhttp.status, я бы лучше подумал. – user3115713

ответ

0

Вы должны сделать .open() до вашего alert. Таким образом, ваш код будет выглядеть так:

function submitChat() { 
    if (form1.uname.value != '' && form1.msg.value != '') { 

     var uname = form1.uname.value; 

     var msg = form1.msg.value; 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.open("GET","insert.php?uname="+uname+"&msg="+msg,true); 
     alert (xmlhttp.status); 
     xmlhttp.onreadystatechange = function() { 
      if(xmlhttp.readystate==4 && xmlhttp.status==200) { 
       document.getElementById('chatlogs').innerHTML = xmlhttp.responseText; 


      } 

     } 

     xmlhttp.send(null); 



    } else { 
     alert("All Fields are Mandatory !!!"); 
     return; 
    } 
} 
+0

Я бы подождал, пока после отправки или console.log внутри onreadystatechange – mplungjan

+0

Ему нужно установить тип этого ajax перед 'readystatechange'. если он предупредит об этом, он вернет '200' –

+0

Спасибо, у меня все еще есть возврат 0. Что я пытаюсь выяснить, почему код вообще не работает. Из-за этого я поставил предупреждение xmlhttp.status, чтобы попытаться посмотреть, могу ли я получить некоторую информацию. Помимо предупреждения, есть ли что-то, отсутствующее в самом коде? благодаря – user3115713

Смежные вопросы