Node、express和angular的重定向问题
Redirection issue with Node, express, and angular
我有一个应用程序在node、express和angular中运行。它有两个页面,一个用户配置文件页面和一个登录页面。我想这样做,如果用户没有登录,当到达配置文件页面时,我会将您重定向到登录页面。问题是,不知何故,每次我试图重定向节点中的用户时,我的Angular应用程序都不会收到302重定向调用(即使我没有发送任何200条状态消息响应,响应也总是200)。感谢您的帮助。这是我的代码:
节点js:
// serve index and view partials
app.get('/', routes.index);
app.get('/partials/:name', routes.partials);
//authentication
app.post('/login', auth.login);
app.get('/logout', auth.logout);
app.get('/user', auth.getCurrentUser);
...
function getCurrentUser (req, res) {
var user = req.user;
if (user && user.username) {
console.log("getCurrentUser succeeded on user "+ user);
res.json({
username: user.username
});
} else {
console.log("getCurrentUser failed")
res.redirect('/login');
}
}
...
//routes in node
exports.index = function(req, res){
console.log("rendering index page");
res.render('index');
};
exports.partials = function (req, res) {
var name = req.params.name;
res.render('partials/' + name);
};
角度:
when('/login', {
templateUrl: 'partials/login',
contorller: LoginCtrl
}).
...
when('/user', {
templateUrl: 'partials/user',
controller: UserCtrl
})
function UserCtrl($scope, $http, $location, $routeParams) {
$http.get('/user').
success(function(data, status, headers){
console.log("/user succeeded with status "+status);
//redirect the user
if (status == 302){
console.log("302 received, redirecting user to "+headers().location);
$location.path(headers.location);
}
console.log("CLIENT : "+data.username);
$scope.username = data.username;
});
};
到达/用户页面时服务器上的输出:
getCurrentUser failed
GET /user 302 8ms - 40b
rendering index page
GET /login 304 80ms
rendering index page
客户端输出:
/user succeeded with status 200
Express发送回的302
在Angular拿到它之前就由浏览器处理(因此您无法为它创建拦截器)。
一个解决方案是始终返回一个JSON对象,并在其上设置一些可以在Angular中检查的属性。
相关文章:
- Javascript移动站点重定向问题
- 移动网站重定向问题
- Javascript移动重定向问题
- Backbone.js路由器和Internet Explorer重定向问题
- Javascript/Ajax重定向问题
- angularjs中的重定向问题
- Facebook登录重定向问题
- 移动页面重定向问题
- 表单与 AppScript 重定向问题(XMLHttpRequest 无法加载)
- PHP JavaScript 重定向问题
- HTML POST重定向问题
- javascript重定向问题
- Node、express和angular的重定向问题
- JS重定向问题
- 谷歌Chrome浏览器的Javascript重定向问题
- JavaScript重定向问题
- Webview重定向问题
- 某些版本IE中的JavaScript重定向问题
- Javascript移动重定向问题
- 重定向问题使用推送状态/弹出状态-与javascript