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 响应则遵循重定向。