Node.js和AngularJS中的CORS

5
我在我的应用程序中遇到了CORS问题。
我的技术栈是使用Express 4和AngularJS的Node.js,使用Restangular
我已经尝试了一些方法(例如),但我仍然遇到以下问题:
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,我真的不知道为什么。

也许是些小问题,希望有人能帮助我。

谢谢!

2个回答

2

变更 -

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

TO

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

Source 1

Source 2


0

我发布了一个带有详细代码的相同答案,因为当我使用所选答案时遇到了一些问题。

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

希望这会更有帮助一些。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接