我已經嘗試了類似性質的問題中提出的一切,但這個非常基本的代碼只是不工作。我只想在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