[英]Parse.com javascript login
您好Stackoverflow成员,
我几天前开始学习javascript,但却遇到了我遇到的一个问题。
形成:
<form class="login-form" method="post" onsubmit="return tryLogin(this);">
<h3 class="form-title">Login to your account</h3>
<div class="alert alert-danger display-hide">
<button class="close" data-close="alert"></button>
<span>
Enter any username and password.
</span>
</div>
<div class="form-group">
<!--ie8, ie9 does not support html5 placeholder, so we just show field title for that-->
<label class="control-label visible-ie8 visible-ie9">Username</label>
<div class="input-icon">
<i class="fa fa-user"></i>
<input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username" id="username"/>
</div>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Password</label>
<div class="input-icon">
<i class="fa fa-lock"></i>
<input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" id="password"/>
</div>
</div>
<div class="form-actions">
<label class="checkbox">
<input type="checkbox" name="remember" value="1"/> Remember me </label>
<button type="submit" class="btn green pull-right">
Login <i class="m-icon-swapright m-icon-white"></i>
</button>
</div>
</form>
使用Javascript:
<script type="text/javascript">
jQuery(document).ready(function() {
App.init();
Login.init();
});
function tryLogin(form) {
var username = form.username.value;
var password = form.password.value;
console.log("Username: " + username + " Password: " + password);
Parse.User.logIn(username, password, {
success: function(user) {
window.location.href="dashboard.html";
//self.undelegateEvents();
//delete self;
alert("Sucess");
return true;
},
error: function(user, error) {
window.location.href="login.html";
alert("Error: " + error.code + " " + error.message + username + password);
return false;
}
});
}
</script>
问题是,当我尝试登录时,我得到一个100 XMLHttpRequest失败错误。 这只发生在我将数据输入表单并单击登录时。如果我没有输入任何数据并单击登录,则会正确尝试登录。 如果我将用户名+密码直接放入javascript它也可以 - 但不通过表单。
Console.log,记录输入的正确用户名和密码,但Parse.User.logIn(用户名,密码)不想传入...但是如果我这样填写它就可以了:
Parse.User.logIn("myemail@email.com", "mypassword", {....
任何帮助,将不胜感激。
干杯!
编辑:这是错误
XMLHttpRequest failed: {"statusText":"","status":0,"response":"","responseType":"","responseXML":null,"responseText":"","upload":{"ontimeout":null,"onprogress":null,"onloadstart":null,"onloadend":null,"onload":null,"onerror":null,"onabort":null},"withCredentials":false,"readyState":4,"timeout":0,"ontimeout":null,"onprogress":null,"onloadstart":null,"onloadend":null,"onload":null,"onerror":null,"onabort":null}
这可能是一个MAMP问题吗? PS:创建新对象等工作正常。
因为你没有在提交事件上调用preventDefault,所以当你点击它时,它会发布表格,这有效取消了Parse.User正在制作的ajax调用。
添加event.preventDefault(); 在你的事件处理程序中,你应该没事。
<form class="login-form" method="post" onsubmit="tryLogin(this); event.preventDefault();">
或者更好地使用jQuery来管理这个事件
$(".login-form").submit (function(event) {
...
event.preventDefault();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.