2016-06-30 2 views
1

Я создаю страницу входа в Angular. После вызова API входа (POST) я получаю маркер в ответ. В контроллере я пытаюсь установить этот маркер в «общем» заголовке, так что я могу использовать его для авторизации для всех последующих вызовов API:Установить токен в заголовке по ответу API

LoginSrv.authenticate($scope.credentials).then(
     function(data){ 
      $http.defaults.headers.common.Authorization = data.token; 
      $state.go('nextpage'); 
     } 
); 

На следующей странице есть снова вызов POST API. После этого вызова, когда я проверяю заголовок запроса в отладчике, я вижу этот токен в заголовке. Этот ответ снова перейдет на третью страницу (на этот раз я больше не настраиваю заголовок). На третьей странице, когда я вызываю API (GET или POST), на этот раз «Авторизация» недоступна в заголовках. Я не уверен, как это само удаление.

+0

Вы можете поделиться кодом контроллера, когда вы делаете второй вызов API и третий? – ExoticChimp

+0

Более подробно об этом. Кажется, это проблема на стороне сервера. – Gaurav

+0

Третий вызов API останавливается на предполетном ВАРИАНТЕ, поэтому он не показывает заголовок. Он выдает ошибку авторизации 401 в OPTION. – Gaurav

ответ

1

Учитывая, что ваш третий запрос является перекрестным доменом, кажется, что ваш сервер неправильно реагирует на запрос OPTIONS предпродажного браузера, который делается для проверки того, какие методы и т. Д. Доступны, прежде чем он отправит ваш запрос. Это не проблема углов. Одним из решений было бы настроить ваш сервер правильно ответить на этот запрос OPTIONS. Эта ссылка SO (представленная в комментариях ранее) более подробно объясняет и обсуждает возможные решения. AngularJS performs an OPTIONS HTTP request for a cross-origin resource

Смежные вопросы