簡體   English   中英

Parse.com javascript登錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM