1

セッションを 2 時間保持するログイン システムがあります。2 時間後にクライアントが API 呼び出しを行うと、エラーが返されます。

{
  "Success": false,
  "Error": {
    "ErrorCode": "002",
    "ErrorMessage": "Session expired"
  }
}

次に、それが発生したときにクライアントをリダイレクトする必要があります/login。問題は、個々の API 呼び出しからそのエラーが発生することです。したがって、すべての API 呼び出しを変更するのではなく、グローバル インターセプターを使用することは可能ですか?

4

1 に答える 1

2

Interceptorsfound hereの例に従ってresponse、インターセプターのセクションで次のようなことを行うことができます。

response: function(resp){
    // resp.data will contain your response object from the server
    if(resp.data && !resp.data.Success){
        // check for error code
        if(resp.data.Error && resp.data.ErrorCode === '002'){
            $location.path('/login');
            return $q.reject(resp);
        }
    }
    return resp || $q.when(resp);
},

200これは、このエラー メッセージが表示されたときに、401またはではなく、サーバーが を返していることを前提としていますが403、それが実行しているように見えます。それが役立つことを願っています。

于 2013-10-21T14:31:35.230 に答える