我的应用程序中有一个简单的授权中间件。它在 GET 和 POST 正常请求中都能完美运行,但是当我通过 ajax 发出 POST 请求时,它不会重定向到页面 401,而是忽略中间件并继续我的模型并将数据插入数据库。
代码:
function(req, res, next){
if(!req.session.user){
res.status(401);
res.redirect('/401');
}
next(); }
有人能解释一下为什么这个中间件如果是 ajax 请求就不能工作,但可以正常处理正常请求吗?
最佳答案
问题是,即使您正在发送重定向,javascript 代码执行仍在继续,因为 next()
不在 else
中条款。所以在 res.redirect('/401')
之后放置一个 return
或将 next()
放在 else
中> 会避免这个问题。
关于javascript - (ajax和express js) express js授权中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28055778/