with headers example javascript http-headers angularjs

javascript - headers - Establecer encabezado HTTP para una solicitud



http post angular 4 (2)

Tengo una solicitud particular en mi aplicación que requiere autenticación básica, por lo que debo configurar el encabezado de autorización para esa solicitud. Leí sobre el establecimiento de encabezados de solicitud HTTP , pero por lo que puedo decir, establecerá ese encabezado para todas las solicitudes de ese método. Tengo algo como esto en mi código:

$http.defaults.headers.post.Authorization = "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==";

Pero no quiero que todas mis solicitudes de envío envíen este encabezado. ¿Hay alguna manera de enviar el encabezado solo para la solicitud que deseo? ¿O debo eliminarlo después de mi solicitud?


Hay un parámetro de encabezados en el objeto de configuración que pasa a $http para los encabezados por llamada:

$http({method: ''GET'', url: ''www.google.com/someapi'', headers: { ''Authorization'': ''Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==''} });

O con el método abreviado:

$http.get(''www.google.com/someapi'', { headers: {''Authorization'': ''Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==''} });

La lista de parámetros válidos está disponible en la documentación del servicio $http .


Prueba esto, quizás funcione;)

.factory(''authInterceptor'', function($location, $q, $window) { return { request: function(config) { config.headers = config.headers || {}; config.headers.Authorization = ''xxxx-xxxx''; return config; } }; }) .config(function($httpProvider) { $httpProvider.interceptors.push(''authInterceptor''); })

Y asegúrate de que tu back-end también funcione, prueba esto. Estoy usando RESTful CodeIgniter.

class App extends REST_Controller { var $authorization = null; public function __construct() { parent::__construct(); header(''Access-Control-Allow-Origin: *''); header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); if ( "OPTIONS" === $_SERVER[''REQUEST_METHOD''] ) { die(); } if(!$this->input->get_request_header(''Authorization'')){ $this->response(null, 400); } $this->authorization = $this->input->get_request_header(''Authorization''); } }