我已经在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很陌生。
答案 0 :(得分:0)
我认为这是因为您正在提交表单,因此页面会重新加载。使用提交事件处理函数底部的event.preventDefault()
。当然,您必须将event
对象传递给参数:
$('#login-form').submit(function(ev){
authenticateUser($('#login-phone').val(), $('#login-pass').val());
ev.preventDefault();
});