2017-03-03 1 views
2

Ich versuche, einen Interzeptor auf Angular JS-Seite zu implementieren, für die ich nach einer bestimmten Antwort suchen und Benutzer zu einer anderen Seite navigieren werde. Das ist mein InterceptorAngular JS Interceptor Überprüfung auf Antwortdaten gibt html zurück

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'); 
}]); 

Dies ist meine API-Antwort von Spring Interceptor

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

Ich versuche, meine Antwort zu überprüfen und überprüfen, für den Code, und wenn der Code übereinstimmt Ich versuche oput zu nehmen ihn auf einen anderen Bildschirm. Aber immer wenn ich die Antwort auf den Daten in der Konsole sehe, ist der HTML-Code vorhanden.

Wenn ich die Registerkarte Netzwerk analysieren, kann ich sehen, API-Aufruf ist mit Antwort 401 fehlgeschlagen. Und alle anderen HTML-Dateien wurden geladen, während der HTML-Code geladen wurde. Antwortdaten kommen in den HTML-Code. also was fehlt mir in meinem Interceptor?

Antwort

3

Da Antwortcode 401 (über 400 einen Anforderungsfehler in Betracht gezogen wird), Sie verwenden müssen

InterceptorServiceFactory.responseError = _response; 

Werfen Sie einen Blick auf this answer um weitere Informationen zu

Verwandte Themen