ajaxの問題を懇願する

WBOY
リリース: 2016-06-23 13:43:35
オリジナル
880 人が閲覧しました

<!DOCUTYPE html><html>	<head>		<title>聊天窗口</title>		<meta http-equiv="Content-type" content="text/html; charset=UTF-8">	</head>	<script type="text/javascript">	 window.resizeTo(580,650);	 window.setInterval("getMessage()", 3000);	 	 function getXmlHttpObject(){		var xmlHttpRequest;		//不同的浏览器获取对象xmlhttprequest对象方法不一样		if(window.ActiveXObject){			xmlHttpRequest =new ActiveXObject("Microsoft.XMLHTTP");		}else{			xmlHttpRequest =new XMLHttpRequest();		}		return xmlHttpRequest;	}	function getMessage()	{		var myXmlHttpRequest = getXmlHttpObject();	 	if(myXmlHttpRequest)	 	{	 		var url = "getMessage.php";	 		var data = "getter=<?php @session_start(); echo $_SESSION['username'];?>&sender=<?php echo $_GET['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)		 			{		 				//接收		 				var mes=myXmlHttpRequest.responseXML;		 						 				window.alert(mes);  //这里打印出来老是为null		 			}		 		}	 		}	 		myXmlHttpRequest.send(data);	 	}	}	 function sendMessage()	 {	 	var myXmlHttpRequest = getXmlHttpObject();	 	if(myXmlHttpRequest)	 	{	 		var url = "sendMessage.php";	 		var data = "con=" + $('con').value +"&getter=<?php echo $_GET['username'];?>"+"&sender=<?php @session_start(); echo $_SESSION['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)		 			{		 			}		 		}		 	}		 	myXmlHttpRequest.send(data);	 	}		 }	 function $(id)	 {		return document.getElementById(id);	 }	</script>	<body>		<center>			<h2><span style="color:red;"><?php @session_start(); echo $_SESSION['username'];?></span>跟<span style="color:red;"><?php echo $_GET['username'];?></span>聊天</h2>			<textarea name="context" rows="20" cols="70"></textarea><br/>			<input style="width:300px" type="text" name="sendcontext" id="con">			<input type="button" name="send" onclick="sendMessage();" value="发送">		</center>	</body></html>
ログイン後にコピー

上記の getMessage() 関数は、getMessage() 関数内の .onreadystatechange で指定されたコールバック関数では常に空として出力されますが、getMessage は ajax で見つかったデータを取得します。私の ajax によってリクエストされたページは データを返します。 以下は、ajax リクエストのコードです。 getMessage
<?php	include "MessageServer.class.php";	@header( 'Content-Type:text/xml;charset=utf-8'); 	@header("Cache-Control: no-cache");	$getter = $_POST['getter'];	$sender = $_POST['sender'];	//调用MessageSerive获取信息	$messageServer = new MessageServer();	$messList = $messageServer->getMessage($getter, $sender);	echo $messList;	?>
ログイン後にコピー

echo $messLis t にはデータ出力があり、出力は です。

ディスカッションに返信 (解決策)

接 // 受信 VAR MES = Myxmlhtprequest.Responsexml;
IF (Mes.xml == '') {

Alert (myxmlhttprequest.Responstext);/ /ここでの出力は常に null です


これはデータ ストリームです。入力コンテンツ形式は定義されていません。json またはデータにすることができます

if(myXmlHttpRequest.status==200) {
if(myXmlHttpRequest.recvType==) "XML ")
echo myXmlHttpRequest.responseXML
}
;

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート