【问题标题】:nodejs res.redirect,but http status code is 304nodejs res.redirect,但http状态码是304
【发布时间】:2016-05-13 03:35:22
【问题描述】:

使用session作为Interceptor,代码是这样的

app.use(function (req, res, next) {
        var url = req.originalUrl;
        var arr =[];
        arr = req.originalUrl.split('/');
        if (arr[1] != "login" && !req.session.user) {
               return res.redirect(302, "/login");   
        }
        next();
    });

然后我收到http状态码为304,页面没有刷新

如何使状态码为 302 并刷新页面?

【问题讨论】:

    标签: node.js redirect http-status-code-304


    【解决方案1】:

    目前,您正在设置发生重定向的url 的302 状态,而不是登录页面。

    使用此代码,例如,如果您点击 url '/home'(您的授权条件失败),那么您设置的状态代码为 302 的 /home,而不是 /login。

    解决方案

    设置login路由的状态。

    例如

    app.get("/login", function(req, res){
         return res.status(302).send('Welcome to login page');
    });
    

    希望对你有所帮助。

    【讨论】:

    • 现在状态码是302,但是页面没有刷新
    • 页面不刷新是什么意思?
    【解决方案2】:

    304 状态代码是如果页面是从缓存加载而不是从服务器重新下载以获取 302 只是清除缓存并进行硬重置

    【讨论】:

      猜你喜欢
      • 2013-09-19
      • 2019-09-17
      • 2010-12-12
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 2011-08-13
      • 2017-03-27
      相关资源
      最近更新 更多