【问题标题】:express js redirect with angular js使用 Angular js 表达 js 重定向
【发布时间】:2016-08-02 22:16:32
【问题描述】:

我从 Angular js 做 http.get

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

如果未经授权,我会使用 express js 的状态重定向

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

在响应数据中输入来自服务器 200 的响应,其中包含登录页面

为什么返回状态是 200 而不是 401 如何解决?

还有我的another question

【问题讨论】:

  • 您必须在客户端重定向用户:windows.location.href='/login'
  • @MBN 我看到我已经收到数据并重定向了?为什么不能得到401的状态?
  • 123 我按原样制作here

标签: angularjs http redirect express


【解决方案1】:

您的$http.get 正在等待响应,在您的情况下这只是登录页面,而不是重定向指令。因此,您需要使用状态码进行响应,然后在客户端重定向。

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

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

});

在服务器端,如果他们没有被授权,只需发送一个状态码。

res.status(401).end();

【讨论】:

    【解决方案2】:

    您必须在客户端重定向用户。试试这个:

    $http.get('/api/users?id='+userID).error(function(data, status){
    
        if(status==401){
            window.location.href='/login';
        }
    
    });
    

    服务器端:

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

    【讨论】:

    • 你有一个rest api,你不能直接在服务器端重定向
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2020-03-31
    • 1970-01-01
    • 2016-04-11
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多