登录页面未重定向到另一页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录页面未重定向到另一页面相关的知识,希望对你有一定的参考价值。

我正在尝试使用htmljavascript将Firestore作为数据库来创建Web登录页面。

问题是,只要我填写登录表单,页面就会刷新。控制台不返回任何错误。 (请注意,在执行页面时,控制台也不会返回任何错误。)

“ loginPage.html”

<head>
    <script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
</head>
    <body>
        <div class="limiter">
            <div class="container-login100">
                <div class="wrap-login100 p-t-30 p-b-20">
                    <form id="loginForm" method="POST">
                        <img src="images/icons/diabeatis.jpg" width="70%" style="margin: 0px auto 20px;display: block;" alt="AVATAR">
                        <span class="login100-form-title p-b-40">
                        <font face="Montserrat">By Team Buendia</font>
                        </span>

                        <div class="wrap-input100 validate-input m-t-25 m-b-35" data-validate="Enter username">
                            <font face="Montserrat">Email</font>
                            <input class="input100" type="text" name="loginEmail" style="font-family:Montserrat;" id="loginEmail" required>
                            <span class="focus-input100"></span>
                        </div>

                        <div class="wrap-input100 validate-input m-b-50" data-validate="Enter password" >
                            <font face="Montserrat">Password</font>
                            <input class="input100" type="password" name="loginPassword" id="loginPassword" required>
                            <span class="focus-input100"></span>
                        </div>

                        <button type="submit" class="login100-form-btn" style="background-color:orange; font-family:Montserrat; cursor:pointer; font-weight:bold" id="btnLogin">Login</button>

                        <ul class="login-more p-t-40">
                            <li class="m-b-8">
                                <a href="signup.html" class="txt2" style="color:#01703D">
                                    <font face="Montserrat">Create Account</font>
                                </a>
                            </li>
                        </ul>
                    </form>
                </div>
            </div>
        </div>
    </body>
    <script src="signin.js">
        firebase.auth().onAuthStateChanged(function(user){
            if(user){
                window.location.href = "patientDashboard.html";
            }
        });
        </script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-app.js" ></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-firestore.js"></script> 
</html>

signin.js

(function(){
    //initialize the firebase app
    var config = {
               *assume there are credentials here*
        }; 

        firebase.initializeApp(config);
        var auth = null;
        var loginBtn= document.getElementById('btnLogin');

    //Login
    loginBtn.addEventListener('click', e => {
        e.preventDefault();
        if( $('#loginEmail').val() != '' && $('#loginPassword').val() != '' ){
        //login the user
        var data = {
            email: $('#loginEmail').val(),
            password: $('#loginPassword').val()
        };

        firebase.auth().signInWithEmailAndPassword(data.email, data.password)
            .then(function(authData) {
            auth = authData;
            })
            .catch(function(error) {
            console.log("Login Failed!", error);
            });
        }
    });
});

然后应将其重定向到名为PatientDashboard.html的页面假设所有js导入都已存在。我已经将此代码添加到上述html文件中

        <script src="signin.js">
        firebase.auth().onAuthStateChanged(function(){
            if(user){
                window.location.href = "loginPage.html";
            }
        });
        </script>
答案

您的代码中存在多个问题,首先:1.脚本signin.js当前未执行,因为您将其包装在一个函数中,但未调用

(function () {
    ...do something here then don't forget to call the function by `()`
})();  // <--- this will execute whatever code within the function scope

  1. 您处理重定向的脚本位于错误的块您的
<script src="signin.js">
   // any code here will only execute whenever the `signin.js` failed to load for any reason
</script>

因此,为了使重定向正常工作,您需要将其存储在另一个脚本块中,或者将其放在您喜欢的位置

我尝试使用上面提到的修复方法重新创建您的代码,重定向工作正常。

[sidenote:如果您使用的是vanillaJS,那么请保持一致,您还使用jQuery $

以上是关于登录页面未重定向到另一页面的主要内容,如果未能解决你的问题,请参考以下文章

IIS7.5下的Asp Net Mvc 4应用程序未重定向到登录页面[重复]

Grails Spring Security登录失败未重定向到登录视图

使用谷歌登录后,登录按钮未重定向到主页

Paypal:Angular Js paypal 按钮未重定向到付款页面

Django-url中的空字符串未重定向到索引页面

PHP标头未重定向到感谢页面