我正在练习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编码或服务器响应中的某处出现问题?

最佳答案

第一,

    else
        document.write("Not connected");


只要状态更改且状态不是4200,就会执行该命令。它不一定表示Not connected。您可以删除该部分。当状态从0更改为12更改为3(和4,但不会显示到else)时,您当前会看到它三次。

其次,您使用的是.equals,但是此函数本身不可用,并且您也未定义它。您是否在寻找:

 if(res == "0")


==是相等运算符。和,

res = xml.responseText;


它不是一个函数,因此您不应附加()

关于javascript - 回应文字比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7133712/

10-10 02:11