0

私のサービスは次のようになります

//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 かを確認するには、何を変更する必要がありますか?

4

2 に答える 2