AngularJS: intercepteur $ http change chaque méthode d’appel en OPTIONS

Donc, j’essaie d’intercepter les appels http pour append l’en-tête d’autorisation à chaque appel s’il existe. Cela fonctionne bien sauf que quelle que soit la méthode http que j’utilise (GET, POST, DELETE), il envoie la requête avec la méthode OPTIONS à la place. Qu’est-ce que je fais mal?

Le serveur est nodejs avec restify.

angular.module('mymodule').factory('RequestService', function () { var token = null; var service = { setToken: function setToken(_token) { token = _token; }, getToken: function getToken() { return token; }, request: function request(config) { if (token) { config.headers['Authorization'] = 'Token' + token; } return config; } } return service; }).config(function($httpProvider) { $httpProvider.interceptors.push('RequestService'); } 

Lorsque vous implémentez votre propre intercepteur du côté de l’extrémité avant, vous devez vous rappeler à propos de CORS:

 app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', req.headers.origin || "*"); res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,HEAD,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'content-Type,x-requested-with,authorization123456,accept'); next(); }); 

N’oubliez pas de définir Acces-Controll-Allow sur les méthodes ainsi que sur les en-têtes. Dans mon cas, c’est ‘autorisation123456’ où je pose mon jeton qui est ajouté à chaque demande d’AngularJS.