Javascript 使用xmlhttp读取文本文件

Javascript 使用xmlhttp读取文本文件,javascript,html,xmlhttprequest,Javascript,Html,Xmlhttprequest,我想从文本文件中读取一个单词,并用它来验证密码。当然,我意识到这并不安全,也永远不会在现实世界中使用,但这是我必须完成的大学课程作业。 每次我点击提交,我都会被带到“messing.html”页面,不管密码是否正确。。。有人能帮忙吗 <!DOCTYPE html> <html> <body> <form name="login" onSubmit="return validateForm();" action="messing.html" meth

我想从文本文件中读取一个单词,并用它来验证密码。当然,我意识到这并不安全,也永远不会在现实世界中使用,但这是我必须完成的大学课程作业。 每次我点击提交,我都会被带到“messing.html”页面,不管密码是否正确。。。有人能帮忙吗

<!DOCTYPE html>
<html>


<body>

<form name="login" onSubmit="return validateForm();" action="messing.html" method="post">
    <label>Password</label>
    <input type="password" name="pword" placeholder="password">
    <input type="submit" value="Login"/>
</form>

<script>
    function validateForm() {
        var user_input = document.login.pword.value;


        xmlhttp=new XMLHttpRequest();
        xmlhttp.open("GET","books.txt",false);
        xmlhttp.send();
        var y =xmlhttp.responseText;




        if (user_input == y){
            return true;
        }
        else {
            alert ("Login was unsuccessful, please check your password");
            return false;
        }
  }
</script>

</body>

</html>

密码
函数validateForm(){
var user_input=document.login.pword.value;
xmlhttp=新的XMLHttpRequest();
open(“GET”,“books.txt”,false);
xmlhttp.send();
var y=xmlhttp.responseText;
如果(用户输入=y){
返回true;
}
否则{
警报(“登录不成功,请检查密码”);
返回false;
}
}

问题在于提交的
onsubmit
。因为您不阻止窗体的默认操作。您的表单将发送到messing.html,并将加载该表单

当您想使用
xmlHTTPRequest
时,需要防止表单上的默认操作

function validateForm(e) {
     ....
   e.preventDefault(); //<--- magic

}

y的值是多少?它真的与用户输入相同吗?它的末尾有新行吗?我的问题是它似乎从来没有达到if/else语句的程度-无论用户输入什么(即使他/她将密码字段留空),登录都是成功的。出于测试目的,文本文件中的所有内容都是abcd。
function validateForm(e) {
    var user_input = document.login.pword.value;


    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET","books.txt",true); //changed to true

    xmlhttp.onreadystatechange = function(){
     if (this.status == 200 && this.readystate == 4)
     {
       var y =xmlhttp.responseText;
       if (user_input == y){
          location.href = "messing.html";

       }
       else {
          alert ("Login was unsuccessful, please check your password");
          return false;
       }
     }            
    }
    xmlhttp.send();
    e.preventDefault();