【问题标题】:(Ajax & express js) Express js authorize middleware(Ajax & express js) express js 授权中间件
【发布时间】:2015-01-20 21:50:16
【问题描述】:

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

代码:

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

有人能解释一下为什么这个中间件在 ajax 请求下无法正常工作,但可以正常处理正常请求吗?

【问题讨论】:

  • 您是否尝试将next() 放在else 子句中,或者至少在res.redirect('/401') 之后放置一个return;,以便在到达next() 之前停止执行?
  • 感谢您的回复。退货;在 res.redirect() 之后;为我工作。 :)

标签: javascript jquery ajax node.js express


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2011-08-18
    • 2013-03-09
    • 2018-01-02
    相关资源
    最近更新 更多