Qua*_*sar 5 http fetch node.js cors
我们的网站使用 HTML5 fetch API 调用我们的后端 NodeJS 服务以执行某些操作。我们的后端与主网站位于不同的域中,因此我们在 Node 应用程序上启用了 CORS。这适用于我们 99% 的客户。
但是,一位客户遇到了问题。他们试图从他们的工作场所访问我们的网站(也许他们的工作场所网络具有更高的安全设置..?)并且他们收到以下错误:
api.our-node-backend.com/blah 加载资源失败:服务器响应状态为 403 (Forbidden) book:1 Fetch API 无法加载https://api.our-node-backend.com/blah。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。Origin ' https://www.our-frontend-website.com ' 因此不允许访问。响应的 HTTP 状态代码为 403。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我们的 Node 应用程序当前配置如下:
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();
});
Run Code Online (Sandbox Code Playgroud)
这个配置有问题吗?堆栈溢出的其他示例将 Access-Control-Allow-Headers 设置为“Origin、X-Requested-With、Content-Type、Accept”,而不仅仅是“Content-Type”。这有什么区别?
归档时间: |
|
查看次数: |
1967 次 |
最近记录: |