我的服务看起来像
//this mthod under myService
this.checkCookie = this.getAuthorization = function() {
return $http({
method: 'GET',
url: '/api/auth'
});
}
在我的路线配置中,我正在做
MyAPP.config(function($routeProvider) {
$routeProvider.
when('/', {
controller: check
}).
when('/login', {
templateUrl: '/partials/login.html',
controller: check
}).
when('/products', {
templateUrl: '/partials/products.html'
})
});
var check = function($location, myService, $q) {
if (myService.checkCookie()) {
$location.path("/products");
} else {
$location.path("/login");
}
};
通过获取请求,我想检查服务器生成的会话数据是否有效。浏览器会在发送 '/api/auth' 中的 'GET' 时发送 cookie 信息。
问题是当我调用 this.checkCookie 时,我没有得到响应同步,因为角度以 asnyc 方式返回响应。根据 checkCookie 响应,我想重定向到“/products”,但我现在不能这样做。
我怎样才能做到这一点?我需要更改什么来获取 this.checkCookie 并检查响应状态是 200 还是 500?