2017-03-03 6 views
2

Angular JS側でインターセプタを実装しようとしていますが、特定のレスポンスをチェックして他のページに移動します。これは、これは春のInterceptorから私のAPIレスポンスである私のインターセプターレスポンスデータのAngular JSインターセプタチェックが返る

App.factory('InterceptorService',['$q', '$location', function($q, $location, $http){ 
var InterceptorServiceFactory = {}; 

var _request = function(config){ 
    console.log('Coming inside'); 
    console.log(config); 
    return config; 
} 

var _response = function(response){ 
    console.log('Coming inside for Result'); 
    console.log(response); 
    if (response.data.code == "USER_TIMEDOUT") { 
     window.location.href = '/unrestricted/jsp/FormLogin.jsp'; 
     alert(worked); 
    } 
    return response; 
} 

InterceptorServiceFactory.request = _request; 
InterceptorServiceFactory.response = _response; 
return InterceptorServiceFactory; 
}]); 

App.config(["$httpProvider", function ($httpProvider) { 
$httpProvider.interceptors.push('InterceptorService'); 
}]); 

である私は私の応答をチェックして、コードをチェックし、しようとしています

{ 
"code": "USER_TIMEDOUT", 
"message": "User session timedout for requestUri=/services/search/Employee" 
} 

コードは、私がoputを取るしようとして一致した場合彼は別の画面に。しかし、私が内部のデータをコンソール上で見るときはいつでも、それはHtmlを持っています。

私は[ネットワーク]タブを分析すると、API呼び出しが応答401で失敗したことがわかります。そして、他のすべてのHTMLがロードされ、HTMLのロード中です。応答データはHtmlの中に入っています。私のインターセプタには何がないのですか?

答えて

3

応答コードが401であるので、(400を介して要求の失敗とみなされる)、 あなたが詳細

ため this answerを見てください

InterceptorServiceFactory.responseError = _response; 

を使用する必要があります

関連する問題