google-chrome - 请求文件的 CORS 问题(仅在 Google Chrome 上)
问题描述
我有一个 .Net Core API 和一个使用 BabylonJs 渲染一些 3D 模型的 React 应用程序。在我的服务器端,我存储了客户端请求渲染到场景中的 3D 模型。为了做到这一点,我已经允许UseFileServer
并UseStaticFiles
在我的 .Net Core 服务器上。我还创建了一个策略来申请需要 CORS 策略的请求。我实施的政策如下:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", policyBuilder => policyBuilder
.AllowAnyHeader()
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyMethod()
.SetIsOriginAllowed((host) => true)
.AllowCredentials());
});
我通过以下方式将其应用于针对静态文件的请求:
app.UseFileServer(enableDirectoryBrowsing: true);
app.UseStaticFiles(fileOptions);
在客户端,Babylon 库通过以下方式完成请求:
SceneLoader.ImportMeshAsync(
"",
"http://localhost:9001/resources/objects/",
"sphere.glb",
scene
)
.then((result) => {
result.renderingGroupId = 1;
scene.createDefaultCamera(true, true, true);
scene.activeCamera.alpha += Math.PI;
})
.catch((error) => {
return null;
});
发生的情况是,我仅在 google chrome 上收到以下错误,在 Firefox 上和 Opera 上都没有。
此外,对 Firefox 和 Opera 的响应包含缺少的标头,而对 chrome 的响应则没有。
铬合金:
火狐:
歌剧:
解决方案
推荐阅读
- webdriver - 如何在 C# 中运行 Selenium Brave Web 浏览器 webdriver?
- javascript - 我们可以在特定函数中加载外部 Javascript
- tesseract - Tesseract 无法识别数字,即使重新缩放、char white_listing 和过滤
- c - 如何在C中的系统函数中给出脚本的相对路径?
- ios - 当用户杀死 iOS 应用程序时唤醒应用程序而不使用 VoIP
- asp.net-core - 当实现 Serilog 调试模式不起作用 [.NET Core 3.1]
- python - 获取数据框中列的比例值 - Pandas
- arrays - 在perl中访问数组元素时@和$有什么区别?
- python - 有什么方法可以在数组中重复一个字母吗?
- odoo - Odoo`sudo`正确的日志