最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

res.redirect()首次提交时挂起

IT培训 admin 3浏览 0评论

res.redirect()首次提交时挂起

我有一个奇怪的问题,我只能与某些用户一起复制。当仅在Google Chrome上使用activedirectory()登录时,他们首次单击登录时,res.redirect将不起作用。如果他们等待一秒钟然后再次按Enter或单击,它就会继续进行,只要不关闭chrome,他们就可以根据需要登录和注销任意数量,而不会出现任何问题。我的绝大多数用户都可以登录,没有任何问题。

我从表单而不是AJAX发布登录信息,有一些承诺,当我调试时都返回正确的值,所以我知道它们不属于问题。以前有没有人经历过?

app.post('/login',
    function(req, res) {
        var username = req.body.username;
        var password = req.body.password;
        ad.authenticate(username.toLowerCase()+config.adDomain, password, function(err,auth) {
            if (err) {
                console.log('ERROR: '+JSON.stringify(err));
                res.render('login.ejs', {  
                    login: false,
                    message: true
                });
            } else {
                if(auth) {
                    if (req.body.remember) {
                      req.session.cookie.maxAge = 1000 * 60 * 3;
                    } else {
                      req.session.cookie.expires = false;
                    }
                    req.session.isAuthenticated = true;
                    req.session.username = username;
                    let namePromise = ADRequests.getUserFullName(username);
                    namePromise.then(function(fullName) {
                        let setUserInfo = Users.checkUserExists(username,fullName);
                        let seedPTO = PTO.SeedIntialPTOLogin(username);
                        Promise.all([setUserInfo, seedPTO]).then(values => {
                            res.redirect('/');
                        });
                    });
                } else {
                    res.render('login.ejs', {  
                        login: false,
                        message: true
                    });
                }
            }
        });  
    }
回答如下:

捕获异常将有助于您更好地了解流程,我更喜欢在catch之后添加then方法>

res.redirect()首次提交时挂起

我有一个奇怪的问题,我只能与某些用户一起复制。当仅在Google Chrome上使用activedirectory()登录时,他们首次单击登录时,res.redirect将不起作用。如果他们等待一秒钟然后再次按Enter或单击,它就会继续进行,只要不关闭chrome,他们就可以根据需要登录和注销任意数量,而不会出现任何问题。我的绝大多数用户都可以登录,没有任何问题。

我从表单而不是AJAX发布登录信息,有一些承诺,当我调试时都返回正确的值,所以我知道它们不属于问题。以前有没有人经历过?

app.post('/login',
    function(req, res) {
        var username = req.body.username;
        var password = req.body.password;
        ad.authenticate(username.toLowerCase()+config.adDomain, password, function(err,auth) {
            if (err) {
                console.log('ERROR: '+JSON.stringify(err));
                res.render('login.ejs', {  
                    login: false,
                    message: true
                });
            } else {
                if(auth) {
                    if (req.body.remember) {
                      req.session.cookie.maxAge = 1000 * 60 * 3;
                    } else {
                      req.session.cookie.expires = false;
                    }
                    req.session.isAuthenticated = true;
                    req.session.username = username;
                    let namePromise = ADRequests.getUserFullName(username);
                    namePromise.then(function(fullName) {
                        let setUserInfo = Users.checkUserExists(username,fullName);
                        let seedPTO = PTO.SeedIntialPTOLogin(username);
                        Promise.all([setUserInfo, seedPTO]).then(values => {
                            res.redirect('/');
                        });
                    });
                } else {
                    res.render('login.ejs', {  
                        login: false,
                        message: true
                    });
                }
            }
        });  
    }
回答如下:

捕获异常将有助于您更好地了解流程,我更喜欢在catch之后添加then方法>

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论