日期:2014-05-16  浏览次数:20913 次

ajax 接收json怎么都接受不到!!!
//chatroom.php 代码有些多,请耐心看一下 ,求大神指教,调了两天斗调不出来,返回的json数据都非常正常,可是chatroom.php怎么也接受不到数据,ie浏览器还一个劲的提示语法错误,但是语法没错,真的百爪挠心了!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>

<?php
session_start();
$friendname=$_GET['friendname'];
$sender=$_SESSION['username'];
?>
 <head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
  <script type="text/javascript">
window.setInterval("getMessage()",5000);//五秒钟刷新
function getXmlHttpObject(){
var xhr;
if(window.ActiveXObject){
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}else{
xhr=new XMLHttpRequest();
}
return xhr;
}
//获取id
function $(id){
return document.getElementById(id);
}
//就是这里获取信息 但是怎么都获取不到 getMessage.php 页面在后面
function getMessage(){
var myxhr=getXmlHttpObject();
if(myxhr){
var url="getMessage.php";
var getter="<?php echo $friendname; ?>";
var sender="<?php echo $sender; ?>";
var data="getter="+getter+"&sender="+sender;
//window.alert(data);
myxhr.open("post",url,true);
myxhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myxhr.onreadystatechange = function(){
if(myxhr.readyState == 4){
if(myxhr.status == 200){
// var message=myxhr.responseXML.getElementsTagByName("content");
// window.alert(content.length);
//window.alert("----");
var res = eval("("+myxhr.responseText+")");
window.alert(res.length);
}
}
}
myxhr.send(data);
}
}


  </script>
 </head>

 <body>
<center>

 <h1>聊天室(<?php echo $sender;?>正在跟<font color="red"><?php echo $friendname;?></font>聊天)</h1>
  

  <textarea id="textarea1" name="" rows="20" cols="40"></textarea><br>

  <input id="content" type="text" name=""/>
  <input type="button" value="发送信息" onclick="sendMessage()"/>
 </body>
</html>



//getMessage.php
<?php	
header("Content-Type:text/html;charset=utf-8");
header("Cache-Control:no-cache");
require_once'MessageService.class.php';
$getter=$_POST['getter'];//接受者
$sender=$_POST['sender'];//发送者 
$messageService=new MessageService();//MessageService类中要有getMessage方法,是从数据库中取数据,以json的方法返回 
$message=$messageService->getMessage($getter,$sender);
echo $message;
//
?>



//MessageService类中要有getMessage方法

function getMessage($getter,$sender){
//isGet 是防止信息反复的取 取完后 就更新为 1 就不再取了
$sql="select * from messages where getter='$getter' and sender='$sender' and isGet=0";
$sqlhelper=new SqlHelper();
$array=$sqlhelper->execute_dql2($sql);
$ar=count($arrary);
//返回给客户端