本帖最后由 alakey 于 2014-01-18 22:52:59 编辑

解决方案 »

  1.   

    没仔细看。单这一句: session_start();
    因其前面有html标签的输出,肯定会有“headers already sent”的错误提示的吧?你都没说你出什么问题了,让大家如何下手
      

  2.   

     function getMessage(){
        //创建一个xmlHttpRequest对象
        var myXmlHttpRequest=getXmlHttpObject();
        if(myXmlHttpRequest){
             
         var url="getMessageController.php";
         var data="getter=<?php echo $loginuser; ?>&sender=<?php echo $username; ?>";
          
         myXmlHttpRequest.open("post",url,true);
         myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
         myXmlHttpRequest.onreadystatechange=function(){
          if(myXmlHttpRequest.readyState==4){
            if(myXmlHttpRequest.status==200){
              //注释1 window.alert("aaa");
              var mesRes=myXmlHttpRequest.responseXML;
              var cons=mesRes.getElementsByTagName("con");
              var sendtimes=mesRes.getElementsByTagName("sendtime");
              //注释2 window.alert("bbb");
              if(cons.length!=0){
                for(var i=0;i<cons.length;i++){
                 $("mycons").value+="<?php echo $username;?>说:"+cons[i].childNodes[0].nodeValue+"___"+sendtimes[i].childNodes[0].nodeValue;
                 
                  
                }
              }
            }
          }
         }
         myXmlHttpRequest.send(data);
        }
      }
     主要就是回调函数出问题, 注释1处的能响应,但是注释2处的window.alert就无法响应。大神帮忙看下。
      

  3.   

    书写健壮的代码是很重要的
    ....
    if(myXmlHttpRequest.status==200){
      var mesRes=myXmlHttpRequest.responseXML;
      if(mesRes.xml == '') { //如果不是 xml 对象
        alert(myXmlHttpRequest.responseText);//看一下究竟返回了什么
        return;
      }
    ....
      

  4.   

    这个估计也就是个外表吧,性能比较差。
    聊天室,采用websockeet或comet,
    其次也不必用数据库,redis或文件存储即可
      

  5.   

    谢谢,已经解决了,怪我粗心了,原来是MessageService.class.php中,第二个header()的分号写成了冒号,晕死啊!
      

  6.   

    header("Cache-Control:no-cache"):
    这种错误,提示应该很明显吧