2016-04-12 38 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();