Définir l'en-tête HTTP pour une demande

J'ai une requête particulière dans mon application nécessitant une authentification de base; j'ai donc besoin de définir l'en-tête d'autorisation pour cette demande. J'ai lu sur la définition des en-têtes de requêtes HTTP , mais à partir de ce que je peux dire, il définira cet en-tête pour toutes les demandes de cette méthode. J'ai quelque chose comme ça dans mon code:

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

Mais je ne veux pas que chacune de mes demandes de publication envoie cet en-tête. Existe-t-il un moyen d'envoyer l'en-tête juste pour la demande que je souhaite? Ou dois-je l'enlever après ma demande?

Il y a un paramètre d'en-têtes dans l'objet de configuration que vous passez à $http pour les en-têtes par appel:

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

Ou avec la méthode de raccourci:

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

La liste des paramètres valides est disponible dans la documentation du service $ $ .

Essayez cela, peut-être que cela fonctionne;)

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

Et assurez-vous que votre back-end fonctionne aussi, essayez ceci. J'utilise 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'); } }