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”。 这有什么不同?
- 使用CORS与LocomotiveJs Rest API。 适用于本地机器,但不适用于Amazon或Heroku
- Socket.io – Access-Control-Allow-Origin不允许的来源
- CORS – 与Angular和Express的http选项错误
- AS3能够识别头部的CORS权限吗?
- Angular / Node / Express / Passport – 连接到facebook(CORS)时的问题
- Angularjs + nodejs +护照跨域请求
- angular度$ http请求从80端口到另一个端口
- 护照js无法在跨网域中维护会话
- 在ExpressJS中接受CORS请求的自定义HttpHeaders