我有以下请求处理程序,可以使用Firebase登录用户。成功登录后,我想将用户重定向到另一个页面。
我会将window.location更改为(document).ready()javascript函数中的另一个页面吗?或者我会在这里实现更改,使用res.redirect(我尝试过)但没有任何反应,我只是在控制台中找回了状态代码。
app.post('/api/sign-in', function (req, res, next) {
firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) {
console.log('a new user has signed in! their e-mail address: ' + user.email + ' | User ID: ' + user.uid)
}).catch(function (error) {
console.log(error)
})
})
呼叫:
$("#sign-in").on('click', function (event) {
event.preventDefault()
$.ajax({
url: '/api/sign-in',
method: 'POST',
data: {
email: $('#email').val(),
password: $('#password').val()
}
});
});
答案 0 :(得分:0)
就像乔治所说,如果你正在做一个ajax帖子,它就不会重定向。
也许这样的事可以帮到你:
app.post('/api/sign-in', function (req, res, next) {
firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) {
res.send({ redirect: '/profile' })
}).catch(function (error) {
console.log(error)
})})
使用Javascript:
$(document).ready(function () {
$('#sign-in').click(function () {
event.preventDefault()
$.ajax({
url: '/api/sign-in',
method: 'POST',
dataType: 'json',
success: function (data, textStatus, jqXHR) {
if (typeof data.redirect === 'string') {
window.location = data.redirect;
}
}
});
});
});
希望它有用。