功能有效,但不要提醒和重新加载

时间:2017-04-17 07:30:45

标签: javascript

我写了一个小表格来登录我的网站:

<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:)

谢谢

1 个答案:

答案 0 :(得分:1)

尝试移动ajax成功块中的location.reload();代码,即在收到ajax响应后重新加载页面(如果没有收到错误)。