2015-09-05 4 views
0

У меня есть проблемы с настройкой заголовка для моего приложения REST. мне нужно установить маркер авторизации заголовок авторизации и на самом деле я использую этот код:Перехватчик в AngularJS

app.factory('sessionInjector', ['$log','$rootScope', function($log, $rootScope) { 
    var sessionInjector = { 
     request: function(config) { 

       $log.debug($rootScope.accesstoken); 

       angular.forEach($rootScope.accesstoken, function(value, key) { 
        if(key=='access_token'){ 
         $log.debug(value); 
         config.headers['Authorization'] = "Bearer " + value; 
        } 
       }); 

      return config; 
     } 
    }; 
    return sessionInjector; 
}]); 


app.config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.interceptors.push('sessionInjector'); 
}]); 

значение в Foreach имеет право значения маркеров.

К сожалению до сих пор не получают ресурсы ...

заявления Logging выполняются, я не вижу заголовок в запросе. Image with headers Первый заголовок запроса предназначен для получения токена, и он работает нормально, но запросы на ресурсы, такие как второй запрос, не отправляют соответствующий заголовок. Для CURL это работает:

curl -H "Authorization: Bearer 5314f45f-0ad0-4f3c-92c0-429c8075eea4" http://localhost:8080/categories/ 
+0

Это выглядит правильно для меня. Вы видите какие-либо ошибки в консоли? –

+0

Только этот тип ошибок: 1. ОПЦИИ http: // localhost: 8080/categories angular.js: 9827 2.XMLHttpRequest не может загрузить http: // localhost: 8080/categories. Недействительный код состояния HTTP 401 (индекс): 1 –

ответ

0

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

$httpProvider.defaults.headers.common['Authorization'] = "Bearer " + value; 
+0

Это тоже не работает;/ –

+0

@ KrzysztofKrólikowski Надеюсь, вы попытались установить его в конфигурационном методе своего модуля приложения, а не внутри перехватчика, например: '.config (function ($ httpProvider) { $ httpProvider.defaults.headers.common'Authorization ' ] = "Носитель" + значение; }) ' –

0

После один день боли я обнаружил, что реализован перехватчик работает когда я выполняю сайт на IE ... Но почему? Почему я не могу установить заголовки в Chrome или Firefox? Я пробовал набор заголовков с interceptorsm с методом Himanshu и с синтаксисом AJAX, почему все они не работают в этих браузерах?

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