(Ajax & express js) express js授权中间件
(Ajax & express js) Express js authorize middleware
我的应用程序中有一个简单的授权中间件。它在 GET 和 POST 正常请求中都能完美运行,但是当我通过 ajax 发出 POST 请求时,它不会重定向到页面 401,而是忽略中间件并继续我的建模并将数据插入数据库。
代码:
function(req, res, next){
if(!req.session.user){
res.status(401);
res.redirect('/401');
}
next(); }
有人能解释一下为什么这个中间件在 ajax 请求但正常请求时无法正常工作吗?
问题是,即使您正在发送重定向,javascript 代码执行仍在继续,因为 next()
不在 [=11= 中] 条款。因此,在 res.redirect('/401')
之后放置 return
或在 else
内放置 next()
将避免此问题。
我的应用程序中有一个简单的授权中间件。它在 GET 和 POST 正常请求中都能完美运行,但是当我通过 ajax 发出 POST 请求时,它不会重定向到页面 401,而是忽略中间件并继续我的建模并将数据插入数据库。
代码:
function(req, res, next){
if(!req.session.user){
res.status(401);
res.redirect('/401');
}
next(); }
有人能解释一下为什么这个中间件在 ajax 请求但正常请求时无法正常工作吗?
问题是,即使您正在发送重定向,javascript 代码执行仍在继续,因为 next()
不在 [=11= 中] 条款。因此,在 res.redirect('/401')
之后放置 return
或在 else
内放置 next()
将避免此问题。