登录页面未重定向到另一页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录页面未重定向到另一页面相关的知识,希望对你有一定的参考价值。
我正在尝试使用html和javascript将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
- 您处理重定向的脚本位于错误的块您的
<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登录失败未重定向到登录视图