Uncaught Error: [$injector:unpr] Unknown provider: $cookiesProvider <- $cookies <- YourHttpInterceptor <- $http <- ng1UIRouter
Uncaught Error: [$injector:unpr] Unknown provider: $cookiesProvider <- $cookies <- YourHttpInterceptor <- $http <- ng1UIRouter
我遇到了这个错误,花了好几个小时才解决这个问题。我是 MEAN 堆栈开发的新手。
我正在尝试在我的应用程序中实现会话管理。却卡在了这里。
错误:
Uncaught Error: [$injector:unpr] Unknown provider: $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] Failed to instantiate module
MyApp due to: Error: [$injector:modulerr] Failed to instantiate
module ngCookies due to: Error: [$injector:nomod] Module 'ngCookies'
is not available! You either misspelled the module name or forgot to
load it. If registering a module ensure that you specify the
dependencies as the second argument.
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
在您的 index.html 页面中,您必须在加载 angular.js 之后加载 angular-cookie:
例子:
<!-- 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,那么这很好。如果不是,请确保适当地设置您的版本。
第一步:
首先包括最新的库:
第 2 步:包括
angular.module('MyApp',[
'ngCookies',
])
第 3 步:然后在任何自定义服务中调用 $cookies。
喜欢:
app.factory('myCookies', ['$cookies', 函数($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;
}]);
仅此而已。
我遇到了这个错误,花了好几个小时才解决这个问题。我是 MEAN 堆栈开发的新手。 我正在尝试在我的应用程序中实现会话管理。却卡在了这里。
错误:
Uncaught Error: [$injector:unpr] Unknown provider: $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] Failed to instantiate module MyApp due to: Error: [$injector:modulerr] Failed to instantiate module ngCookies due to: Error: [$injector:nomod] Module 'ngCookies' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
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
在您的 index.html 页面中,您必须在加载 angular.js 之后加载 angular-cookie:
例子:
<!-- 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,那么这很好。如果不是,请确保适当地设置您的版本。
第一步: 首先包括最新的库:
第 2 步:包括
angular.module('MyApp',[ 'ngCookies', ])
第 3 步:然后在任何自定义服务中调用 $cookies。
喜欢: app.factory('myCookies', ['$cookies', 函数($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;
}]);
仅此而已。