Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未调用onreadystatechange_Javascript_Ajax - Fatal编程技术网

Javascript 未调用onreadystatechange

Javascript 未调用onreadystatechange,javascript,ajax,Javascript,Ajax,我期待调用show_Message函数时出现一个警报框,但onreadystatechange不工作。其他警报框工作正常 这是我的js函数 function send_Message(){ var msg=document.getElementById("msg").value; if(msg.length===0||msg===""){ alert("please enter some message"); return; } var sender=document.g

我期待调用show_Message函数时出现一个警报框,但onreadystatechange不工作。其他警报框工作正常

这是我的js函数

 function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
    xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);
}
 }
xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
xhttp.send(空)

应在onreadystatechange的

改成

function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
}
xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);
 }

这可能是因为您有打开并发送内部
onstatechange
功能

function send_Message(){
  var msg = document.getElementById("msg").value;
  if( msg.length === 0 || msg === "" ){
    alert("please enter some message");
    return;
  }

  var sender=document.getElementById("username").value;
  var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
  alert(sender+" "+sendto);

  var xhttp=new XMLHttpRequest();
  xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
  }

  xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
  xhttp.send(null);
}

你犯了关门的错误。 xhttp.onreadystatechange=函数(){

上面的函数应该在执行if语句后关闭

检查下面的更正代码:

function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
}; 
    xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);

 }

您需要调用xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);xhttp.send(null);在您的onreadystatechange函数之外。您如何调用
发送消息
函数?您需要打开并发送OnReadStateChange之外的内容谢谢!!我太傻了..修改了这么多次代码仍然没有收到。无论如何,谢谢大家