2017-12-29 1 views
0

각 요청 전에 래퍼 문제가 발생했습니다 (X-CSRF-TOKEN 값의 헤더 추가) 및 응답

Error: $ injector: unpr 
Unknown Provider 
Unknown provider: $ httpProviderProvider <- $ httpProvider <- HttpPreConfigController <- LoginService 

인증 모듈 :

var appAuth = angular.module("app-auth", ["ngResource", "ngRoute", "ngCookies"]); 

컨트롤러 :

새로운 X-CSRF 토큰 토큰)

하지만 실수를 건너 왔어요3210

appAuth.controller("LoginController", function ($scope, $timeout, $window, $rootScope, LoginService) { 
    $scope.login = function() { 
     LoginService.getUser().then(function (response) { 
      ... 
     }); 
    }; 
}); 

서비스 :

appAuth.factory("LoginService", function ($resource, $route, $cookieStore, $q, $rootScope, HttpPreConfigController) { 
    var LoginService; 

    LoginService = { 
     getUser: function() { 
      return HttpPreConfigController.get('/rest/user'); 
     } 
    }; 
    return LoginService; 
}); 

과 래퍼 :

appAuth.factory('HttpPreConfigController', ['$injector', '$cookieStore', '$httpProvider', function ($injector, $cookieStore, $httpProvider) { 
    var $http = $injector.get('$http'); 
    $http.defaults.transformRequest.push(function (data, headers) { 
     $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 
     $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN'; 
     $httpProvider.defaults.headers.common['X-CSRF-TOKEN'] = $cookieStore.get('X-CSRF-TOKEN'); 
    }); 
    $http.defaults.transformResponse.push(function (data, headers) { 
     $cookieStore.put("X-CSRF-TOKEN", headers('X-CSRF-TOKEN')); 
    }); 
    return $http; 
}]); 

당신이 오류를 제거 할 수 있습니까?

+0

[AngularJS 오류 참조 - 오류 : $ injector : unpr 알 수없는 공급자] (https://docs.angularjs.org/error/$injector/unpr)를 참조하십시오. – georgeawg

답변

1

제공자은 앱의 구성 단계에만 주입 할 수 있기 때문에이 오류가 발생합니다. 따라서 코드가 factory에서 config 블록으로 이동해야 작동합니다. 희망이 도움이 될 것입니다.

관련 문제