javascript - (ajax和express js) express js授权中间件

标签 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 请求就不能工作,但可以正常处理正常请求吗?

最佳答案

问题是,即使您正在发送重定向,javascript 代码执行仍在继续,因为 next() 不在 else 中条款。所以在 res.redirect('/401') 之后放置一个 return 或将 next() 放在 else 中> 会避免这个问题。

关于javascript - (ajax和express js) express js授权中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28055778/

相关文章:

javascript - 向模板实例变量传递方法调用结果时出现异常

javascript - 十六进制格式可以用于 JSON 文件吗?如果是这样,如何?

Javascript 函数在运行时再次被调用

javascript - 向下滚动页面时需要显示标题行

javascript - 在 symfony Controller 中使用 ajax 处理 $_POST

javascript - AJAX 请求第一次不起作用,但此后可以起作用

javascript - Rails `remote: true` 未发出 AJAX 请求

javascript - CSS 动画到 javascript 幻灯片

javascript - 使用原型(prototype) js 库从 html 多选中删除一个选项

jquery - 函数返回零如何解决这个问题?