处理Angular POST的快速重定向

JZ.*_*JZ. 12 javascript redirect express 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 = '';
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

console.log(数据)(来自Angular POST成功)

returns the HTML of the page I intended to redirect to
Run Code Online (Sandbox Code Playgroud)

Ste*_*wie 16

AngularJS旨在作为客户端框架(大多数)与RESTfull API相结合.您的登录API不应该返回HTML,它应该返回重定向指令.所以在你的情况下你应该简单地调用$location.url('/')你的$http成功回调,这将使用Angular路由器"重定向"到'/'(根URL).

  • 我怎样才能模仿传统的<form action ='/ auth/signin'方法='POST'>在res.redirect工作的情况下发布数据的方式? (3认同)