(Ajax& express js)Express js授权中间件

时间:2015-01-20 21:50:16

标签: javascript jquery ajax node.js express

我的应用程序中有一个简单的授权中间件。它在GET和POST正常请求中都能很好地工作,但是当我通过ajax发出POST请求时,它不会重定向到页面401,而是忽略中间件并继续我的模型并将数据插入到数据库中。

代码:

function(req, res, next){
        if(!req.session.user){
            res.status(401);
            res.redirect('/401');
        }
        next(); }

有人可以解释一下,如果这个中间件是ajax请求但是正常请求正常工作,那么为什么这个中间件不起作用?

1 个答案:

答案 0 :(得分:2)

问题在于即使您发送重定向, javascript 代码也会继续执行,因为next()不在else子句中。因此,在return后面res.redirect('/401')或在next()内放else可以避免此问题。