2017-01-16 2 views
0

Я новичок в AngularJS, и я пытался добавить HTTP-заголовок ко всем запросам, но он не работает. Я был на самом деле пытаюсь добавить их с помощью .config в угловомДобавление HTTP-заголовка в AngularJS не работает

Моего коде:

angular.module('sc.app',[]) 
    .provider('TokenHandler',['$q',function ($q) { 
     return { 
      $get: function() { 
       return { 
        request: function (config) { 
         var defer = $q.defer(); 
         console.log('jwt'); 
         config.defaults.headers.common['Authorization'] = 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ=='; 
         config.defaults.headers.common['Accept'] = 'application/json;odata=verbose'; 

         return defer.resolve(config); 
        }, 
        requestError: function (err) { 
         var defer = $q.defer(); 
         return defer.reject(err); 
        }, 
        response: function (success) {        
        var defer = $q.defer(); 
        console.log(success) 
        return defer.resolve(success); 
       }, 
       responseError: function (err) { 
        var defer = $q.defer(); 
        return defer.reject(err); 
       } 
      }; 
     } 
    } 
}]) 

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

.service('TokenService',['$http','$localStorage',function ($scope,$localStorage) { 
    $scope.getToken=function() { 
     return $localStorage.gaid; 
    } 

    $scope.setToken=function (token) { 
     $localStorage.gaid=token; 
    } 
}]); 

Я гугл много, но я не мог решить этот вопрос в ней. Хотя я также попытался добавить с опцией config.headers, но также не работает.

и мой заголовок запроса

GET /api/datatable.json?_=1484584475255 HTTP/1.1 
Host: scrm.app 
Connection: keep-alive 
Accept: application/json, text/javascript, */*; q=0.01 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 
Referer: http://scrm.app/ 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8,ta;q=0.6 
Cookie: _ga=GA1.2.550730185.1483706923; 
XSRF-TOKEN=eyJpdiI6Ik9RaDBLeWluTVBIS0ZnOWkyaWxDUXc9PSIsInZhbHVlIjoiWlMzZUxONGthTmRKbkxxQjkxMGZWTE40d1lFYnAxRkRCM254b21abUpiOVFkd3VqbXowTjhlenFYa0xSazV1WmJuK2wweUFNZjVvM05NTXU3NjAwVmc9PSIsIm1hYyI6Ijg1Yzk0OWM3MTFkNTdlYTA1NjgzYjYyMmY3NmE1MWI0OTA4Mjc1MjM1ZTdkYTUxOWUxZmZhYjFlNzRmNzc2MDkifQ%3D%3D; laravel_session=eyJpdiI6InZqb01UbDRNVFgrTG1FVitvZW1WQXc9PSIsInZhbHVlIjoic3NKUXo5ZGd5ODBpZXhNRXBsa1pmbVhFSmhUVDA3RkZyQ3FcL1VlOVRZUWt4UlVxZVlidlU4VUV5VjBCZFwvUldCbzZVNU83R25zMXpRZ25DTENTZGpsUT09IiwibWFjIjoiZjNjNWM2OWU2ZDM3NDVlNDRkYTRhMjk4MmM4NWJmNjI0ODQyMmQwMjkzZTBkZWQ3N2ZjZTg4YzdjYTljZWNjNCJ9 

мой заголовок ответа

HTTP/1.0 404 Not Found 
Host: scrm.app 
Connection: close 
X-Powered-By: PHP/5.6.27 
Cache-Control: no-cache, private 
Date: Mon, 16 Jan 2017 16:49:42 GMT 
Content-type: text/html; charset=UTF-8 
+2

Я думаю, что что-то неправильно в этой строке '[ '$ HTTP', '$ LocalStorage ', function ($ scope, $ localStorage) {'=>' $ scope' на самом деле '$ http', –

+0

не работает @AlonEitan – user3447573

+1

Разрешает ли сервер заголовок авторизации (' Access-Control-Allow-Headers: Accept, Authorization')? –

ответ

0

При добавлении заголовков с помощью конфигурации вам нужно только config.headers например, -

config.headers['Authorization'] = 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ=='; 
config.headers['Accept'] = 'application/json;odata=verbose'; 

Только при добавлении через $http службы вам нужно остальное например -

$http.defaults.headers.common.Authorization = 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ=='; 

Edit: Еще один способ, чтобы попытаться добавить следующее в .service блок -

.service('TokenService',['$http','$localStorage',function ($scope,$localStorage) { 
    var service = this; 

    service.request = function(config) { 
     config.headers['Authorization'] = 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ=='; 
     config.headers['Accept'] = 'application/json;odata=verbose'; 

     return config; 
    }; 
...... 
+0

не работает @Callum – user3447573

+0

Я добавил еще один mehtod к ответу, надеюсь, будет работать. Для выяснения, что он работает нормально, и только заголовки не добавляются? – Callum

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