为什么 three.js 加载程序只需要某些浏览器的网络服务器?
why does three.js loader requires webserver only for certain browsers?
在使用了 three.js 和 gltf 加载程序之后,我注意到 Mozilla 和 Edge 不要求将 gltf 文件放置在 Web 服务器中,但 ie11 需要。谁能解释一下这是为什么?
谢谢
发生这种情况是因为浏览器中的安全限制。例如,如果您尝试通过文件协议 (file:///
) 直接从文件加载 glTF
资产,Chrome 会记录以下错误:
Access to XMLHttpRequest at 'file:///...DamagedHelmet.gltf' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
浏览器的行为各不相同,因为它们没有实施相同的安全策略。
为了避免与安全相关的问题,three.js
建议在 developing/testing WebGL 应用程序从外部文件加载资产时使用本地 Web 服务器。
在使用了 three.js 和 gltf 加载程序之后,我注意到 Mozilla 和 Edge 不要求将 gltf 文件放置在 Web 服务器中,但 ie11 需要。谁能解释一下这是为什么?
谢谢
发生这种情况是因为浏览器中的安全限制。例如,如果您尝试通过文件协议 (file:///
) 直接从文件加载 glTF
资产,Chrome 会记录以下错误:
Access to XMLHttpRequest at 'file:///...DamagedHelmet.gltf' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
浏览器的行为各不相同,因为它们没有实施相同的安全策略。
为了避免与安全相关的问题,three.js
建议在 developing/testing WebGL 应用程序从外部文件加载资产时使用本地 Web 服务器。