我已经尝试了类似性质的问题中提出的一切,但这个非常基本的代码只是不工作。我只想在XMLHttpRequest
的同一文件中接收来自php代码的消息。JavaScript与XMLHttpRequest不工作
<!DOCTYPE html>
<head></head>
<body>
<div id="qwer" style="height:50px;width:40px"></div>
<script type="text/javascript">
function check() {
var ualias=document.getElementById('ualias').value;
var resu=document.getElementById("qwer");
var params="username="+ualias;
var hm = new XMLHttpRequest();
var url = "http://'my-domain-name'/try.php";
hm.open("GET", url+"?"+params, true);
hm.onreadystatechange = function(){
if(hm.readyState == 4 && hm.status == 200) {
var return_data = hm.responseText;
resu.innerHTML=return_data;
} else {
resu.innerHTML="error";
}
hm.send(null);
resu.innerHTML="CHECKING...";
}
}
</script>
<?php if(isset($_GET['username'])) {
$u=$_GET['username'];
echo $u;
exit();
} ?>
<input id='ualias' type='text' onblur=''>
<button type='button' onclick="check()">Go!</button>
</body>
</html>
浏览器(谷歌浏览器)未显示为onclick
事件东西。
它终于奏效了。我做了以下编辑。
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function check()
{
var ualias=document.getElementById('ualias').value;
var resu=document.getElementById("qwer");
var params="username="+ualias;
var hm = new XMLHttpRequest();
var url = "http://www.websamaj.in/try.php";
hm.open("GET", url+"?"+params, true);
hm.onreadystatechange = function(){
if(hm.readyState == 4 && hm.status == 200)
{
var return_data = hm.responseText;
resu.innerHTML=return_data;
}
}
hm.send(null);
resu.innerHTML="wait...";
}
</script>
<?php
if(isset($_GET['username']))
{
$u=$_GET['username'];
echo $u.",you are finally here!:)";
exit();
}
?>
<input id='ualias' type='text' onblur=''>
<button type='button' onclick="check()">Go!</button>
<div id="qwer" style="height:50px;width:100px;background-color:#CCC;"></div>
</body>
</html>
显然,onreadystatechange函数中的else条件导致了一个问题。如果有人能告诉我为什么会造成问题,我会很喜欢它。据我所知,每次状态改变时都会调用onreadystatechange事件。因此,在我以前的代码中,“错误”应该覆盖三次div,然后,当状态更改为4和200时,responseText应该被覆盖,因为我没有使用append。所以,一个解释将得到高度肯定。谢谢!
你确定这是一个JS问题,而不是PHP的问题? –
调试控制台中是否有错误?你可以检查请求正在发送在网络控制台 –
这是不需要在您的PHP:退出(); – Zarathuztra