Angular JS Interceptor检查响应数据返回html

时间:2017-03-03 19:31:56

标签: javascript html angularjs intercept

我正在尝试在Angular JS端实现拦截器,为此我将检查特定的响应并将用户导航到其他页面。这是我的拦截器

_.uniq(fileList ,function(item){ return item.file + item.identifier; })

这是我对Spring Interceptor的API响应

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

我正在尝试检查我的回复并检查代码,如果代码匹配,我试图将他视为另一个屏幕。但每当我在控制台内部数据上看到响应时,它就会拥有Html。

当我分析网络选项卡时,我能够看到API调用因响应401而失败。并且在加载html时加载了所有其他HTML。响应数据正在Html中。所以我在拦截器中缺少什么?

1 个答案:

答案 0 :(得分:3)

由于响应代码为401(超过400被视为请求失败), 你需要使用

InterceptorServiceFactory.responseError = _response;

有关详细信息,请查看this answer