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”。 这有什么不同?
- AngularJS:无法发送POST请求与适当的CORS头
- 姜饼浏览器跨域响应串联错误
- Socket.io不设置CORS头(s)
- 请求的资源上没有“Access-Control-Allow-Origin”标题。 NodeJS和AngularJS应用程序
- POST请求使用Fetch API无法正常工作
- Angular / Node / Express / Passport – 连接到facebook(CORS)时的问题
- 我如何将CORS-Headers添加到静态连接服务器?
- 允许CORS REST请求到express / node.js应用程序
- Uncaught(承诺)TypeError:无法获取和Cors错误