Node.js CORS导致403 Forbidden

我们的网站使用HTML5抓取API来调用我们的后端NodeJS服务来执行某些操作。 我们的后端驻留在与主站点不同的域中,因此我们在Node应用程序上启用了CORS。 这为我们的客户99%的工作。

但是,一个客户一直有问题。 他们试图从他们的工作场所访问我们的网站(也许他们的工作场所networking有更高的安全设置..?),他们收到以下错误:

api.our-node-backend.com/blah无法加载资源:服务器的状态为403(Forbidden)书:1提取API无法加载https://api.our-node-backend.com/blah 。 对预检请求的响应不会通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 原因' https://www.our-frontend-website.com '因此不允许访问。 响应的HTTP状态码为403.如果一个不透明的响应满足您的需求,请将请求的模式设置为“no-cors”,以取消禁用CORS的资源。

我们的Node应用程序目前configuration如下:

app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); }); // respond to options pre-flight app.options('*', function(req, res) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); res.status(200).send(); }); 

这个configuration有什么问题吗? 堆栈溢出的其他示例将Access-Control-Allow-Headers设置为“Origin,X-Requested-With,Content-Type,Accept”而不是“Content-Type”。 这有什么不同?