私はAJAXを実践しています。サーバー内のファイルからテキストを取得するコードを記述し、それが「0」の場合は「ゼロ」を出力し、エラーの場合は「接続されていません」を出力します。しかし、何かがうまくいかなかったのですが、接続されていても接続されないだけなのかわかりません。
コードは次のとおりです。
<html>
<head>
<title>LogIN</title>
<script>
function verify()
{
var xml;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xml=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xml=new ActiveXObject("Microsoft.XMLHTTP");
}
xml.onreadystatechange=function()
{
if (xml.readyState==4 && xml.status==200)
{
var res=xml.responseText();
if(res.equals("0"))
{
document.write("zero");
}
else
{
document.write("one");
}
}
else
document.write("Not connected");
}
xml.open("GET", "log_verify.txt", true);
xml.send();
}
function login()
{
//action to login
}
</script>
</head>
<body>
<form>
User name : <input type="text" name="uname" onblur="verify()">
<br>
Pwd : <input type="password" name="passwd" >
<br>
<input type="button" name="Login" value="Login" onclick="login()">
</form>
</body>
</html>
出力を次のように取得する
接続されていません接続されていません接続されていません
しかし、応答テキストを表示するだけで、以下のコードに従って正しく印刷されます
<html>
<head>
<title>LogIN</title>
<script>
function verify()
{
var xml;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xml=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xml=new ActiveXObject("Microsoft.XMLHTTP");
}
xml.onreadystatechange=function()
{
if (xml.readyState==4 && xml.status==200)
{
document.getElementById("myDiv").innerHTML+=xml.responseText;
}
}
xml.open("GET", "log_verify.txt", true);
xml.send();
}
function login()
{
//action to login
}
</script>
</head>
<body>
<form>
User name : <input type="text" name="uname" onblur="verify()">
<br>
Pwd : <input type="password" name="passwd" >
<br>
<input type="button" name="Login" value="Login" onclick="login()">
</form>
<div id="myDiv"><h2>Response text:</h2></div>
</body>
</html>
出力を次のように取得する
応答テキスト:
0
javascriptコーディングまたはサーバー応答のどこかに問題がありますか?