CORS dans Node.js et AngularJS

J’ai un problème avec la CORS avec mon application.

Ma stack est Node.js avec Express 4 et AngularJS avec Restangular

J’ai déjà essayé quelques choses ( par exemple ) mais je continue à obtenir:

XMLHttpRequest cannot load http://localhost:8080/api/users. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 

Du côté du serveur, j’ai ces en-têtes:

 app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods", "GET, POST","PUT"); next(); }); 

Dans la partie AngularJS, j’utilise ceci:

 $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; 

Et je fais le post avec Restangular comme ceci:

 var baseUsers = Restangular.all('users'); .... .... baseUsers.post(newUser).then(function(user){ console.log(user); }); 

Une dernière chose: sur le serveur Node.js, je console le req.method et indique OPTIONS . Je ne sais vraiment pas pourquoi.

Peut-être que c’est idiot, espérons que quelqu’un pourra m’aider.

Merci!

Changement –

 res.header("Access-Control-Allow-Headers", "X-Requested-With"); 

À

 res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); 

Source 1

Source 2

Je poste même réponse avec un code détaillé, parce que j’ai eu quelques problèmes quand j’utilise la réponse sélectionnée.

Il suffit de tirer le code ci-dessous après l’initialisation de l’object d’ app

  app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); res.header("Access-Control-Allow-Methods", "GET, POST","PUT"); next(); }); 

J’espère que cela sera un peu plus utile.