Uncaught Error: [$injector:unpr] Неизвестный провайдер: $cookiesProvider ‹- $cookies ‹- YourHttpInterceptor ‹- $http ‹- ng1UIRouter

Я получаю эту ошибку, изо всех сил пытаясь решить эту проблему. Я новичок в разработке стека MEAN. Я пытаюсь реализовать управление сеансом в своем приложении. Но застрял на этом моменте.

Ошибка:

Uncaught Error: [$injector:unpr] Неизвестный провайдер: $cookiesProvider ‹- $cookies ‹- YourHttpInterceptor ‹- $http ‹- ng1UIRouter

angular.module('MyApp')
.factory('YourHttpInterceptor', ['$q', '$cookies', '$location',
function($q, $cookies, $location) {


   return {        
        'request': function(config) {

            console.log("req");
            config.headers = config.headers || {};
              if ($cookies.get('token')) {
                config.headers.Authorization = 'Bearer ' + $cookies.get('token');
              }
            return config;
        },       

        // Optional method
        'requestError': function(rejection) {
            // do something on request error 
            console.log("inside the request error");
            if (canRecover(rejection)) {
                return responseOrNewPromise
            }
            return $q.reject(rejection);
        },        

        // Optional method        
        'response': function(response) {
            // do something on response success
            console.log("inside the response ");
            return response;
        },

        // optional method 
        responseError: function(response) {
          if(response.status === 401) {
            $location.path('/login');
            // remove any stale tokens
            $cookies.remove('token');
            return $q.reject(response);
          }
          else {
            return $q.reject(response);
          }
        }
    };
}]);

Спасибо.


после добавления ошибок ngCookies:

Uncaught Error: [$injector:modulerr] Не удалось создать экземпляр модуля MyApp из-за: Ошибка: [$injector:modulerr] Не удалось создать экземпляр модуля ngCookies из-за: Ошибка: [$injector:nomod] Модуль 'ngCookies' недоступен! Вы либо неправильно написали имя модуля, либо забыли его загрузить. При регистрации модуля убедитесь, что вы указали зависимости в качестве второго аргумента.

app.js

angular.module('MyApp', [
    'ngMaterial',
    'ngMdIcons',
    'ui.router',
    'ngCookies',
    'e3-core-ui.services', 
    'e3-core-ui.utils'  
])

.config(['$stateProvider', '$routeProvider','$httpProvider','$mdThemingProvider', '$mdIconProvider',  function($stateProvider, $routeProvider, $httpProvider, $mdThemingProvider, $mdIconProvider) { 
 $httpProvider.interceptors.push('YourHttpInterceptor');
...
enter code here

person jatinder bhola    schedule 02.06.2016    source источник
comment
Вы добавили ngCookies в качестве зависимости к своему приложению?   -  person gnerkus    schedule 02.06.2016
comment
Можете ли вы добавить код, используемый для создания приложения?   -  person gnerkus    schedule 02.06.2016
comment
в основном, я хочу реализовать управление сеансом. так что если у вас есть код, который может мне помочь... я могу обновить этот код. (когда я добавляю «ngCookies» в свое приложение, возникает куча ошибок.)   -  person jatinder bhola    schedule 02.06.2016
comment
@gnerkus, если вы не возражаете и у вас есть время, я могу поделиться своими подробностями о командном просмотре.   -  person jatinder bhola    schedule 02.06.2016
comment
Вам было бы легче помочь, если бы вы показали, как было создано приложение и какие ошибки отображались при добавлении ngCookies.   -  person gnerkus    schedule 02.06.2016
comment
@gnerkus, сэр, я обновляю код. Пожалуйста, посмотрите..   -  person jatinder bhola    schedule 02.06.2016
comment
Давайте продолжим обсуждение в чате.   -  person jatinder bhola    schedule 02.06.2016
comment
Вы добавили ссылку на скрипт в angular-cookies.js или angular-cookies.min.js?   -  person Lex    schedule 03.06.2016


Ответы (2)


На вашей странице index.html вы должны загрузить файлы cookie angular после загрузки angular.js:

Примеры:

<!-- Not minified, version 1.5.5 -->
<script src="https://code.angularjs.org/1.5.5/angular-cookies.js"></script>
<!-- Minified, version 1.5.5 -->
<script src="https://code.angularjs.org/1.5.5/angular-cookies.min.js"></script>

Примечания: Старайтесь, чтобы ваши версии были одинаковыми, если вы используете angular 1.5.5, то это хорошо. Если нет, убедитесь, что ваша версия установлена ​​соответствующим образом.

person Brian    schedule 03.06.2016
comment
ngCookies должны быть включены angular.module('MyApp', ['ngCookies', ]) - person Phung D. An; 10.09.2018

Шаг 1: Сначала включите последнюю библиотеку:

Шаг 2. Включить

angular.module('MyApp', ['ngCookies', ])

Шаг 3: Затем вызовите $cookies в любой пользовательской службе.

Например: app.factory('myCookies', ['$cookies', function($cookies) { var profileData = {};

profileData.setCookieData = function (userName, userId) 
{
    $cookies.put("userName", userName);
    $cookies.put("userId", userId);
};

profileData.getUserName = function () 
{
    return $cookies.get("userName");
};

profileData.getUserId = function () 
{
    return $cookies.get("userId");
};

profileData.remove = function () 
{
    $cookies.remove("userName");
    $cookies.remove("userId");
};

return profileData;

}]);

Это все.

person ArunDhwaj IIITH    schedule 11.08.2017