httpclientmodule headers example angularjs http

headers - Cabecera personalizada de AngularJS $ http para todas las solicitudes



httpclientmodule (3)

Me preguntaba si hay alguna forma de configurar todo el encabezado de las solicitudes $ http con la adición de información personalizada. Algo así como config:

var config = {headers: { ''Authorization'': ''Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ=='', ''Accept'': ''application/json;odata=verbose'' } };

Pero para todas las llamadas de $ http que haré en diferentes servicios. Estoy seguro de que hay una solución: D.Gracias


Puede crear un interceptor $http para extender su encabezado:

myapp.factory(''httpRequestInterceptor'', function () { return { request: function (config) { config.headers[''Authorization''] = ''Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==''; config.headers[''Accept''] = ''application/json;odata=verbose''; return config; } }; }); myapp.config(function ($httpProvider) { $httpProvider.interceptors.push(''httpRequestInterceptor''); });


Una solución más simple podría ser utilizar el bloque de run de Angular:

app.run([''$http'', function ($http) { $http.defaults.headers.common[''Authorization''] = ''Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==''; $http.defaults.headers.common[''Accept''] = ''application/json;odata=verbose''; }]);

Nota: Esta solución le permite pasar el valor estático solo una vez, ya que el bloque de run se ejecuta solo una vez.


use the folllowing code and you can also control $http timeout from config setting. ''use strict''; var app = angular.module(''b2capp'', []); var apiRequestCount = 0; app.config(function ($httpProvider) { $httpProvider.interceptors.push(function ($rootScope, $q) { return { request: function (config) { apiRequestCount++; // config.timeout =300000; return config; }, response: function (response) { return response; }, responseError: function (rejection) { switch (rejection.status) { case 408: console.log(''connection timed out''); break; } // return $q.reject(rejection); return rejection; } } }) }); }]); app.controller(''myCtrl'', function ($scope, $http, $timeout) { var headers = { //''Authorization'': ''Basic '' + btoa(username + ":" + password), ''Access-Control-Allow-Origin'': true, ''Content-Type'': ''application/json; charset=utf-8'', "X-Requested-With": "XMLHttpRequest" } $http.post(url + ''Search_6e'', reqCookie, { headers }) .then(function Success(response) { $scope.myData = resultData; console.log($scope.myData); }, function myError(response) { //error code });