一尘不染

处理来自Angular POST的明确重定向

angularjs

我正在使用Expressjs作为API,并且正在使用angular来执行该POST。我想回应快递发送的重定向。Angular
POST的成功返回了我打算重定向到的页面的HTML,但是DOM没有任何反应。我可以看到我的重定向在网络流量中起作用,并且下面的console.log数据包含重定向页面的DOM。

如何刷新DOM,以反映此成功的POST,或处理“重定向”?

角码:

   $http({method: 'POST', url: '/login', data:FormData}).
      success(function(data, status, headers, config) {
      console.log(data)
    }).
      error(function(data, status, headers, config) {
    });

    $scope.userName = '';

Expressjs API:

    app.post('/login', function(req, res){

        var name = req.param('name', null);  // second parameter is default
    var password = req.param('password', "changeme")

    // Lots Authenticationcode
    // returns succesfful login
    res.redirect('http://localhost:3000/');

  }); // end app.post

console.log(data)(来自Angular POST成功)

returns the HTML of the page I intended to redirect to

阅读 235

收藏
2020-07-04

共1个答案

一尘不染

AngularJS旨在作为客户端框架,与(主要是)RESTfull API结合使用。您的登录API不应返回HTML,而应返回 重定向指令
。所以你的情况,你应该简单地调用$location.url('/')你的$http成功回调,这将使用角度路由器“重定向”,以“/”(根URL)。

2020-07-04