网站主页没有执行回调?#

时间:2017-03-10 01:57:54

标签: javascript amazon-web-services

我已经在AWS S3上设置了一个网站。我的主文件在主目录中设置为index.html,当我打开网站时,它会打开该文件,这正是我想要的。当我去我的网站(mysite.io)时,它被加载到mysite.io,这也是我想要的。我遇到的问题是,如果" /?#"我没有执行回调函数。不在URL中。

从下面的代码中可以看出,当用户在登录表单中输入数据时,会读入电话和密码并将其传递给authenticateUser方法。如果没有" /?#"在URL中,cognitoUser.authenticateUser(...)不执行,如下面的日志所示。

$('#login-form').submit(function () {
    var phone = $('#login-phone').val();
    var password = $('#login-pass').val();
    authenticateUser(phone, password);
});

function authenticateUser(username, password) {
  // a bunch of variables created here
  console.log("This is always executed");

  myVariable.doSomething(someStuff, {
    onSuccess: function (result) {
      console.log("This is not executed if there is no '?#' after mysite.io/");
    },
    onFailure: function (err) {
      alert("Neither is this");
    }

  });

  console.log("This is also always executed");
}

我无法在网上找到任何有关此错误的信息,并且非常感谢一些帮助,因为我对webdev很陌生。

1 个答案:

答案 0 :(得分:0)

我认为这是因为您正在提交表单,因此页面会重新加载。使用提交事件处理函数底部的event.preventDefault()。当然,您必须将event对象传递给参数:

$('#login-form').submit(function(ev){
  authenticateUser($('#login-phone').val(), $('#login-pass').val());
  ev.preventDefault();
});