Javascript 角度$http接收器

Javascript 角度$http接收器,javascript,angularjs,http,interceptor,Javascript,Angularjs,Http,Interceptor,我的理解是,当我生成下面这样的$http.post代码时,我的拦截器应该预处理输入数据并响应它的错误/成功方法。但当我做$q.rejectresponse.data时;我已经检查了数据是否存在。然后在我的错误中,我会得到那些我拒绝的数据。但我不知道。错误为空 代码: 这是我的模块 Http请求 拦截器 Ahh发现$q.rejectresponse已经将.data解压到错误处理程序。 因此,my.error变为null,因为response.data没有原因的.data response.data

我的理解是,当我生成下面这样的$http.post代码时,我的拦截器应该预处理输入数据并响应它的错误/成功方法。但当我做$q.rejectresponse.data时;我已经检查了数据是否存在。然后在我的错误中,我会得到那些我拒绝的数据。但我不知道。错误为空

代码: 这是我的模块

Http请求

拦截器

Ahh发现$q.rejectresponse已经将.data解压到错误处理程序。 因此,my.error变为null,因为response.data没有原因的.data response.data.data属性

我会让它作为将来的参考

$http.post("/overview", searchCriterias).success(function(data) {
                console.log('InboundController : success in http call');
                $scope.searchState = "result";
                $scope.result = data;
            }).error(function(data, status, headers, config) {
                console.log('InboundController : error in http call');
                $scope.searchState = "error";
                console.log(data);
                if (data.errorMessage)
                    $scope.result = data.errorMessage;
                else
                    $scope.result = data;
            });
LTS.factory('defaultHttpInterceptor', function($q) {
    return {
        response: function(response) {
            // do something on success
//            console.log(response.headers());
            if (response.headers()['content-type'].indexOf("application/json;charset=UTF-8") > -1) {
//                 Validate response, if not ok reject
                var dataPresent = response.data;
                if (dataPresent && dataPresent.state && dataPresent.state !== "OK") {
                    console.log(response.data);
                    return $q.reject(response.data);
                } else {
                    return response.data;
                }
            }
            return response;
        },
        responseError: function(response) {
            // do something on error
            console.log('defaultHttpInterceptor : http error');
            return $q.reject(response);
        }
    };
});
LTS.config(function($httpProvider) {
    $httpProvider.interceptors.push('defaultHttpInterceptor');
});