express js 无法重定向用户
express js can't redirect user
var express = require('express');
var firebase = require('firebase');
var admin = require('firebase-admin');
var router = express.Router();
router.post('/api/login', function(req, res) {
var email = req.body.email;
var pass = req.body.password;
login(email, pass);
});
function login(email, pass){
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE);
firebase.auth().signInWithEmailAndPassword(email, pass).then(function (user) {
if(user){
console.log('user');
res.redirect('/signup');
};
}).then(() => {
// A page redirect would suffice as the persistence is set to NONE.
return firebase.auth().signOut();
}).then(() => {
window.location.assign('/signup');
}).catch(function (error) {
var errorMessage = error.message;
}); // auth catch End
};// login fun
................................................ ..................................................... ..................................................... …………
如果用户不等于 null 那么我想将用户重定向到注册
如果 POST 请求来自浏览器网页中的 Ajax 调用,则对请求的响应只会发送给进行 Ajax 调用的脚本。浏览器根本看不到它,因此浏览器本身对 POST 的响应不做任何事情。响应只是转到您的脚本。因此,如果您希望页面在 Ajax 调用后重定向,则需要 return 脚本可以识别的响应,然后脚本需要执行 client-side 重定向,例如:
window.location = "http://someURL";
如果您的脚本正在寻找重定向响应,您可以让脚本查看状态并 header 查看重定向,或者您也可以 return 一些 JSON 告诉脚本要做什么。
如果 POST 请求来自浏览器中的 HTML 表单(不涉及 Javascript),则浏览器将查看来自 POST 的响应并显示结果响应(如果它是 2xxx 响应)或者如果它是 3xx 响应则遵循重定向。
var express = require('express');
var firebase = require('firebase');
var admin = require('firebase-admin');
var router = express.Router();
router.post('/api/login', function(req, res) {
var email = req.body.email;
var pass = req.body.password;
login(email, pass);
});
function login(email, pass){
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE);
firebase.auth().signInWithEmailAndPassword(email, pass).then(function (user) {
if(user){
console.log('user');
res.redirect('/signup');
};
}).then(() => {
// A page redirect would suffice as the persistence is set to NONE.
return firebase.auth().signOut();
}).then(() => {
window.location.assign('/signup');
}).catch(function (error) {
var errorMessage = error.message;
}); // auth catch End
};// login fun
................................................ ..................................................... ..................................................... ………… 如果用户不等于 null 那么我想将用户重定向到注册
如果 POST 请求来自浏览器网页中的 Ajax 调用,则对请求的响应只会发送给进行 Ajax 调用的脚本。浏览器根本看不到它,因此浏览器本身对 POST 的响应不做任何事情。响应只是转到您的脚本。因此,如果您希望页面在 Ajax 调用后重定向,则需要 return 脚本可以识别的响应,然后脚本需要执行 client-side 重定向,例如:
window.location = "http://someURL";
如果您的脚本正在寻找重定向响应,您可以让脚本查看状态并 header 查看重定向,或者您也可以 return 一些 JSON 告诉脚本要做什么。
如果 POST 请求来自浏览器中的 HTML 表单(不涉及 Javascript),则浏览器将查看来自 POST 的响应并显示结果响应(如果它是 2xxx 响应)或者如果它是 3xx 响应则遵循重定向。