我写了一个小表格来登录我的网站:
<form id="log_form" onsubmit='return loginjs()' method="post">
<input type='text' placeholder="login" size='30' name='login' class='test'/>
<input type='password' placeholder="password" name='password' size='30'/>
<input type='submit' value='Connect' id='signin' />
</form>
我编写了这个Javascript函数,将表单的数据发送到一个php页面,该页面将检查一切是否正常并进行会话。
function loginjs() {
'use strict';
var form = document.getElementById('log_form');
var btn = document.getElementById('signin');
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if(request.readyState === XMLHttpRequest.DONE) {
if(request.status === 200) {
if (request.responseText != 'ok')
alert(request.responseText);
}
}
}
var post = "login=" + form.login.value + "&password=" + form.password.value;
request.open('POST', 'functions/func_login.php');
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(post);
location.reload();
};
每次按ENTER键或点击“提交”时,我的功能都被完美调用,但有时警报不会显示和location.reload();没有人打电话。 我的控制台中没有任何错误...如果我手动重新加载页面,我就会记录,因此我的ajax已被发送。
我正在寻找2天的时间来找到这个错误,并且没有成功找到。有人能帮助我吗?
我无法使用jQuery或其他库来使用JS Vanilla:)
谢谢
答案 0 :(得分:1)
尝试移动ajax成功块中的location.reload();
代码,即在收到ajax响应后重新加载页面(如果没有收到错误)。