私のサービスは次のようになります
//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");
}
};
get request でサーバーが生成したセッションデータが有効かどうかを確認したい。そして、ブラウザは「/api/auth」で「GET」を送信しながらCookie情報を送信します。
問題は、this.checkCookie を呼び出しているときに、angular が asnyc 形式で応答を返すため、応答の syncronoulsy が得られないことです。checkCookie の応答に応じて、「/products」にリダイレクトすることを想定していますが、今はできません。
どうやってやるの?this.checkCookie を取得し、応答ステータスが 200 か 500 かを確認するには、何を変更する必要がありますか?