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
});