2016-05-13 41 views
0

使用會話攔截器,代碼是這樣的的NodeJS res.redirect,但HTTP狀態代碼是304

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,該頁面未刷新 enter image description here

我該如何讓狀態碼是302並刷新頁面?

回答

0

當前,您正在設置發生重定向的url302狀態,而不是登錄頁面的狀態。

使用此代碼,例如,如果您點擊網址'/ home'(您的授權條件失敗),那麼您將設置/home的狀態代碼302,而不是/login

解決方案

設置login路線的狀態。

E.g.

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

希望它對你有所幫助。

+0

狀態碼現在是302,但頁面不刷新 – tomato

+0

你是什麼意思,頁面不刷新? –