2013-12-02 6 views
5

При попытке получить доступ к защищенному Апи, мне нужно отправить данные заголовка в моей угловой HTTP запросовКак отправить данные заголовка в запросе HTTP в угловом JS

Javascript код:

$http.post('http://localhost/api/validate', user).success(function() { 
     $scope.reset(); 
     $scope.activePath = $location.path('/'); 

Как отправить данные заголовка в этом запросе?

ответ

12
//store the header data in a variable 
    var headers = { 'Authorization': authToken }; 

    //Add headers with in your request 
    $http.post('http://localhost/api/validate',user, { headers: headers }).success(function() 
0

Настройка HTTP заголовков

в $ служба HTTP будет автоматически добавлять определенные заголовки HTTP на все запросы. Эти настройки по умолчанию могут быть полностью настроены путем доступа к объекту конфигурации $ httpProvider.defaults.headers, который в настоящее время содержит эту конфигурацию по умолчанию:

$ httpProvider.defaults.headers.common (заголовки, которые являются общими для всех запросов): Принять: применение/JSON, текст/равнина, */*

$ httpProvider.defaults.headers.post: (заголовок по умолчанию для запросов POST) Content-Type: применение/JSON

$ httpProvider.defaults.headers. put (заголовки по умолчанию для запросов PUT) Тип контента: application/json

Чтобы добавить или перезаписать эти значения по умолчанию, просто добавьте или удалите свойство из этих объектов конфигурации. Чтобы добавить заголовки для метода HTTP, отличного от POST или PUT, просто добавьте новый объект с наименьшим именем HTTP-метода в качестве ключа, например. `$ httpProvider.defaults.headers.get = {'My-Header': 'value'}.

Значения по умолчанию также могут быть установлены во время выполнения через объект $ http.defaults тем же способом. Кроме того, вы можете предоставить свойство заголовков в объекте конфигурации, переданном при вызове $ http (config), который переопределяет значения по умолчанию, не изменяя их по всему миру.

0

Для аутентификации я нахожу этот код полезной. Предполагая, что токен хранится в файле cookie после успешного входа в систему,

.factory('authInterceptor', function ($q, $cookieStore) { 
    return { 
     // Add authorization token to headers 
     request: function (config) { 
      config.headers = config.headers || {}; 
      if ($cookieStore.get('token')) { 
       config.headers.Authorization = 'Bearer ' + $cookieStore.get('token'); 
      } 
      return config; 
     }, 

     // Intercept 401s and redirect you to login 
     responseError: function(response) { 
      if(response.status === 401) { 
       // remove any stale tokens 
       $cookieStore.remove('token'); 
       return $q.reject(response); 
      } 
      else { 
       return $q.reject(response); 
      } 
     } 
    }; 
}) 
.config(function ($httpProvider) { 
    $httpProvider.interceptors.push('authInterceptor'); 
}) 
Смежные вопросы