Javascript 无法使用html5、AJAX和PHP登录

Javascript 无法使用html5、AJAX和PHP登录,javascript,php,mysql,ajax,html,Javascript,Php,Mysql,Ajax,Html,我正在尝试使用html表单登录用户帐户,AJAX和PHP花了数小时搜索解决方案,但什么也找不到。我是AJAX和php新手,如果有人能帮助我,我会很高兴的!!它会将请求发送到服务器(WAMP),但不会返回响应 hthml5 form <div id="Text"> <form action="JavaScript:loginAccount()" id="loginForm"> <h1>Login into My Account</h1> Use

我正在尝试使用html表单登录用户帐户,AJAX和PHP花了数小时搜索解决方案,但什么也找不到。我是AJAX和php新手,如果有人能帮助我,我会很高兴的!!它会将请求发送到服务器(WAMP),但不会返回响应

 hthml5 form

<div id="Text">

<form action="JavaScript:loginAccount()" id="loginForm">
<h1>Login into My Account</h1>
Username:<input id="username" type = "text"  value="" /><br><br>
Password:<input id="password" type = "text"  value="" /><br><br>
<div class="buttons">
<input type="submit" id="" value="Login" />
<input type="button" id="" value="Cancel" onclick="returnMain()"/>
</div>
</form>
hthml5格式
登录我的帐户
用户名:

密码:


php文件的AJAX请求
var loginAccountRequest=new XMLHttpRequest();
函数loginAccount(){
var url=“login.php”;
var userName=document.getElementById(“用户名”).value;
var passWord=document.getElementById(“密码”).value;
loginAccountRequest.onreadystatechange=insertStock();
loginAccountRequest.open(“POST”,url,true);
loginAccountRequest.setRequestHeader(“内容类型”、“应用程序/x-www表单urlencoded”);
loginAccountRequest.send(“user=“+userName+”&pass=“+passWord”);
}
来自服务器的AJAX响应
函数insertStock(){
if(loginAccountRequest.readyState==4){
如果(loginAccountRequest.status==200){
var response=loginAccountRequest.responseText;
var thediv=document.getElementById(“文本”);
如果(响应==0){
thediv.innerHTML=“抱歉,请重试…”
} 
如果(响应==1){
stockShort();
}
}
}
}
php文件

首先,在JavaScript中,您没有正确地为AJAX调用分配回调。使用:

loginAccountRequest.onreadystatechange = insertStock; //no parentheses
其次,您的PHP没有任何响应。将以下内容放在PHP代码的末尾:

echo $errorMessage;
第三,回调代码没有正确检查
响应。不要检查
0
1
,而是执行以下操作:

if (response !== "logged on ")
    thediv.innerHTML = "Sorry please try again..";
else
    stockShort();

它没有回复吗?那么请求超时了?是的,那么我该如何修复它呢,已经被困了好几个小时了!!请求在达到PHP的执行时间限制之前超时是很不寻常的,但我想这可能取决于您的配置。我会在代码中添加日志语句,并尝试找出哪一行锁定了进程。如果让我猜的话,我会说是MySQL连接或查询,但这真的不应该发生。在完成您提到的操作后,仍然没有响应?尝试删除对
readyState==4
status==200
的检查,然后看看是否得到响应。当代码执行时,输出并记录尽可能多的变量,以查看它在哪里停止。它在响应函数insertStock()处停止。它是否被调用过?这就是你的意思吗?如果是这样的话,你需要尝试在你的PHP中记录变量,看看问题出在哪里?
if (response !== "logged on ")
    thediv.innerHTML = "Sorry please try again..";
else
    stockShort();