Изменить заголовок http запроса без обновления в angularjs

javascript angularjs http cookies

735 просмотра

1 ответ

Я пишу сайт, который использует ngRoute для смены страниц. для входа в систему появится форма и при ее успешном выполнении контроллер изменит заголовок http для запросов на следующих шагах. Но проблема в том, что когда я изменяю заголовок, страница должна быть перезагружена, если нет, токен не будет добавлен в заголовок.

Контроллер:

app.controller('catCtrl',['Api','$scope','$cookieStore','$rootScope',function (Api,$scope,$cookieStore,$rootScope) {
$scope.Login = function(){
    Api.loginEmail($scope.log_email, $scope.pass, 'chrome', 'windows','').success(function(response){
      $cookieStore.put('Auth-Key', 'Token ' + response.token);

      $scope.is_Loggedin = true;
      $scope.showLoginWin();
    }).error(function(response){
      $scope.log_email = null;
      $scope.pass = null;
      $scope.error = response.error;
    });
  };
}

App.run:

app.run(['$cookieStore','$http',function($cookieStore, $http){

  $http.defaults.headers.common['Authorization'] = $cookieStore.get('Auth-Key');
}]);

Как я могу изменить заголовок без перезагрузки страницы.

Автор: W1ldworm Источник Размещён: 08.11.2019 11:14

Ответы (1)


1 плюс

Решение

поэтому вы хотите добавить свой токен по запросу после входа в систему.

Вы можете попробовать угловой перехватчик. Вот несколько ответов о том, как добавить токен через перехватчик.

Пример 1 перехватчика

Пример 2 перехватчика

образец кода:

app.factory('httpRequestInterceptor', function () {
  return {
    request: function (config) {    
      config.headers['Authorization'] = $cookieStore.get('Auth-Key');     

      return config;
    }
  };
});

На вашем сервисном уровне игнорируйте проверку этого заголовка для входа.

Автор: ramamoorthy_villi Размещён: 20.08.2016 11:58
Вопросы из категории :
32x32