12

我正在使用 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
4

1 回答 1

17

AngularJS 旨在作为与(主要)RESTfull API 耦合的客户端框架工作。您的登录 API 不应该返回 HTML,它应该返回重定向指令。因此,在您的情况下,您应该简单地调用$location.url('/')您的$http成功回调,这将使用 Angular 路由器“重定向”到“/”(根 URL)。

于 2013-05-18T21:45:38.117 回答