我想在我的应用程序中设置注销,但是由于知道它是SPA,所以我被困在将用户重定向到登录表单中。
在我的server.js中,
app.get('/logout',function(request, res){
request.session.destroy();
res.redirect('/');
console.log("done");
});
和
app.get('/',function(request,response){
response.sendFile("CERIGame/index.html",{ root: __dirname} );
});
只是登录表单在开头是可见的。
和http请求,我从上面称为“ / logout”
logOut: function(){
return $http
.get('/logout')
.then(function(response){
logged = false;
return "logging out";
});
},
此http请求在工厂中定义。 重定向到“ /”不起作用,并且即使console.log打印完成消息,也不会引发任何异常。
答案 0 :(得分:0)
我将尽一切可能对此进行解释,您的重定向工作正常。问题在于您发出请求的方式,当您重定向到'/'
的{{1}}时,执行以下操作:
server.js
到目前为止,一切都很好,未加载表单的原因是因为消耗app.get('/', function (request, response) {
response.sendFile("CERIGame/index.html", { root: __dirname });
});
的人正在返回server.js
"logging out"
如果流程正确执行,通常会对其进行概括,那么错误的是实现向logOut: function() {
return $http
.get('/logout')
.then(function (response) {
// Your form at this point is in response
logged = false;
return "logging out";
});
},
发出请求的实现,因为此时表单已丢失到最终目的地。
答案 1 :(得分:0)
好像您使用Node.Js作为后端,AngularJs作为前端。
后端代码为
app.get('/logout',function(request, res){
request.session.destroy();
res.statusCode = 200;
res.send({success:true});
});
前端代码为
logOut: function(){
return $http
.get('/logout')
.then(function(response){
//Here you can redirect in different ways like
window.location.href = '/';
// or
/* $state.go('home'); //In case if you are using anuglar-ui router */
});
},