Node.js和AngularJS中的CORS

我的应用程序有一个CORS问题。

我的堆栈是使用Express 4和使用Restangular的 AngularJS的Node.js

我已经尝试了一些东西( 例如 ),但我不断得到:

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

在服务器端我有这个标题:

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

在AngularJS部分我使用这个:

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

我正在像这样做Restangular的职位:

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

还有一件事,在Node.js服务器上,我正在安装req.method ,它说OPTIONS ,我真的不知道为什么。

也许是愚蠢的东西,希望有人能帮助我。

谢谢!

更改 –

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

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

来源1

来源2

我发布相同的答案与详细的代码,因为我有一些问题,当我使用选定的答案。

在初始化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(); }); 

我希望这会更有帮助。