Ajax Post 请求不一致,为什么?

Ajax Post Request is inconsistent, why?

我有一个简单的登录表单,它通过 post 请求检查凭据。
问题是它不是每次都有效。
以下是我用来检查凭据的代码:

function login() {
  alert('asdf');
  $.post("login",
         {
    email: document.getElementById('email').value,
    pwd: document.getElementById('pwd').value
  },
         function (data, status) {
    alert(status);
    window.location.replace("message.jsp?type=login" + data);
  });
}

我尝试使用警报来调试问题,发现第一个警报每次都会执行,但 post 函数中的警报并不是每次都会执行。
并且当状态警报未执行时,浏览器上的 url 更改为:

http://localhost:8080/project_name/index.jsp?email=my_email_address&password=my_password

请注意:我在 Post 请求中指定的参数名称是密码文本字段的 pwd,但它的密码在这里

我的登录表单:

<form onSubmit='login()'>
    <input id="email" type="email" placeholder="Email" name="email" required>
    <input id="pwd" type="password" placeholder="Password" name="password" required>
    <button type="submit"> Login </button>
</form>

Servlet Returns 如果登录成功则为 0 或 1,message.jsp 相应地打印一条小消息

我做错了什么?

事实证明,在表单中使用按钮类型提交或输入类型提交会覆盖 onSubmit 属性。