我有从$ js到Express.js api的$ http pst ajax调用。在Express.js中,我使用节点的异步模块来进行代码的一些串行执行。如果没有问题,我想重定向到特定页面。因为如果我使用res.render('url')我正在从angular进行ajax调用,这不是重定向页面而是在angularjs上警告我。顺便说一句,我还有一个$ routeProvider上的角也:)。这是在重定向
后加载部分模板角度AJAX POST CALL代码
app.controller('MainCtrl',function($scope,$http){
$scope.loginForm=function(){
alert($scope.username);
$http.post('/login',{'name': $scope.username}).
success(function(data) {
alert(data);
}).
error(function(data) {
alert(data);
});
}
});
Node.js(Express.js)api验证并进行重定向
app.post( '/登录',函数(REQ,RES){
var name= req.body.name;
//var password= req.body.password;
async.series([
function (callback){
var query= client.query('select count(*) as lgResult from Login where Email='+'"'+req.body.name+'"',function(err,result,field){
if(err) return callback(err);
if(result[0]['lgResult'] === 0){
res.send('passwordWrong');
}
if(result[0]['lgResult'] === 1){
callback(null, 'one');
}
});
},
function (callback){
var query= client.query('select count(*) as lgResult from Login where Email='+'"'+req.body.name+'"',function(err,result,field){
if(err) return callback(err);
if(result[0]['lgResult'] === 0){
res.send('passwordWrongSecondtime');
}
if(result[0]['lgResult'] === 1){
callback(null, 'two');
}
});
}],
function (err,results){
if(err) {
console.log(err);
res.send('Something Broke sorry');
}
else{
res.render('employelogin/employlogin');
}
});
});
角度路由:)
app.config(function($routeProvider, $controllerProvider,$compileProvider){
app.registerCtrl = $controllerProvider.register;
app.compileProvider = $compileProvider.directive;
$routeProvider
.when('/employeeTimeSheet',{
controller:'MainCtrl',
templateUrl:'employeeTimeSheet.html'
})
.when('/employeeLogin',{
templateUrl:'employeeDashboard.html'
})
.otherwise({redirectTo:'/employeeLogin'});
});
这里我的错误是什么
答案 0 :(得分:1)
只是不要尝试处理一个HTTP请求中的所有内容。
在您的成功回调中使用
$location.path('/employeeTimeSheet');
这将处理重定向。并且不要忘记向控制器注入$ location服务。