$http.post('http://localhost:7001/v1/sessions', {
data: {
username: $scope.user.username,
password: $scope.user.password,
type: 'sessions'
}
})
.then(function(response) {
if(response.data.data.token) {
$http.defaults.headers.common.Authorization = response.data.data.token;
$state.go('app.dashboard');
} else {
$scope.authError = response;
}
}, function(x) {
$scope.authError = 'Server Error';
});
Я могу подтвердить, что состояние if
вызвано и присутствует response.data.data.token
.
Он идет в app.dashboard
состоянии, но перехвачена моей ui-router
:
$stateProvider.state('app', {
abstract: true,
url: '/app',
templateUrl: 'tpl/app.html',
resolve: {
current_user: ['$http', function($http) {
return $http.get('http://localhost:7001/v1/users/4/entities');
}]
}
})
Это называют, однако, не имеет ничего установить в заголовке. Я думал, что $http.defaults
установит значение по умолчанию в заголовке. Что я делаю неправильно?
'$ http' контекст внутри контроллера подобен локальной переменной в контроллере и при внесении изменений в него не повлияет глобально –
Как я могу изменить его, чтобы он затрагивался в глобальном масштабе? – Shamoon
Чтобы быть честным, проще и удобнее переносить '$ http' в пользовательскую службу, например. 'request', а затем установите для него переменную. – Sulthan