2016-04-12 37 views
1

我做http.get從角JS表達JS具有角JS重定向

$http.get('/api/users?id='+userID) 

此外,如果未經授權的本人對於狀態重定向從快車的js

res.status(401).location('/login').end(); 

Вut從服務器200使用響應登錄頁面中的響應數據

爲什麼返回狀態是200而不是401如何解決它?

並在客戶端我another question

+0

你必須在客戶端重定向用戶:windows.location.href =「/登錄」 – MBN

+0

@MBN我看,我收到的數據,並重定向?爲什麼不能獲得401的狀態? – name

+0

123我製作的是這樣寫的[這裏](http://stackoverflow.com/a/29482118/5507287) – name

回答

0

您必須重定向用戶。試試這個:

$http.get('/api/users?id='+userID).error(function(data, status){ 

    if(status==401){ 
     window.location.href='/login'; 
    } 

}); 

服務器端:

res.status(401).send({ hasError: true }); 
+0

看這裏pls http://stackoverflow.com/questions/36309821/express-js-redirect – name

+0

你有一個休息API,你不能直接在服務器端重定向 – MBN

0

$http.get等待這你的情況僅僅是登錄頁面,而不是重定向指令的響應。因此,您需要使用狀態碼進行響應,然後在客戶端重定向。

$http.get('/api/users?id='+userID).error(function(data, status){ 

    if(status==401){ 
     $window.location.href='/login'; 
    } 

}); 

在服務器端,如果他們沒有授權,只需發送一個狀態碼。

res.status(401).end();