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