Angularjs Nodejshttp://test.dev:3000/api/profile. 否';访问控制允许原点';标题来源';http://localhost:9000'

Angularjs Nodejshttp://test.dev:3000/api/profile. 否';访问控制允许原点';标题来源';http://localhost:9000',angularjs,node.js,express,Angularjs,Node.js,Express,NodeJS-Angularjs CORS问题 我对nodeJS的REST POST有问题。休息似乎很好 我看到了典型的信息,似乎无法修复它 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为400 NodeJS——我的app.js中有以下设置 var cors = require('cors') app.use(cors()); // Enables CORS var en

NodeJS-Angularjs

CORS问题

我对nodeJS的REST POST有问题。休息似乎很好

我看到了典型的信息,似乎无法修复它

无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为400

NodeJS——我的app.js中有以下设置

var cors = require('cors')

app.use(cors());
// Enables CORS

var enableCORS = function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');

  // intercept OPTIONS method
  if ('OPTIONS' == req.method) {
   // res.send(200);
    res.sendStatus(200);
  }
  else {
    next();
  }
};

// enable CORS!
app.use(enableCORS);
//--------------
服务器日志: 选项/api/profile 204 1.257毫秒-- POST/api/profile 400 65.141 ms-698

NodeJS——路由

Angularjs侧

service

angular.module('testApp').factory('ProfileUpdateService',  ['$resource', function($resource) {
  return $resource('http://test.dev:3000/api/profile');
}]);


controller
      ProfileUpdateService.save('test data', function(data){
        console.log('called save on ProfileUpdateService');
      });

固定的。看起来我使用了几个cors过滤器。

为什么你们都在使用cors模块并手动实现自己的cors支持?你不应该做一个或另一个吗?我猜这两个实现可能会把对方搞砸。特别是你自己对选项的支持可能会弄乱你正在使用的CORS模块。我已经拿出一个,然后进行测试。删除其他测试。同样的问题。我正在通过Nginx。你认为这是一个问题吗?
service

angular.module('testApp').factory('ProfileUpdateService',  ['$resource', function($resource) {
  return $resource('http://test.dev:3000/api/profile');
}]);


controller
      ProfileUpdateService.save('test data', function(data){
        console.log('called save on ProfileUpdateService');
      });