我正在尝试使用 JavaScript 和 WebAssembly 制作一个简单的、独立的(只有一个 .html 文件和一个 .wasm 文件)离线数据可视化。但是,我在从本地文件加载 WASM 模块时遇到问题。
第一个麻烦是CORS。尝试使用亲戚或a加载任何JS模块file://
URL 出现安全错误。在 Firefox 上,我设法禁用了本地 CORS,但这很糟糕且过于宽松。在 Chrome 上,我需要使用标志启动浏览器。从用户的角度来看,这些都是不可能的。有没有办法从本地文件加载 JS 或 WASM 模块而不会遇到 CORS 麻烦?
绕过 CORS,第二个问题是,虽然 Firefox 能够加载 JS 模块,但 WASM 模块失败:(我的实际错误消息是日语,但我认为这是英语)“Loading failed for the”。 wasm“与来源”。没有显示更多信息。在 Chrome 上,错误消息为“无法加载模块脚本:服务器响应非 JavaScript MIME 类型“”。根据 HTML 规范,对模块脚本强制执行严格的 MIME 类型检查。”,这表明两种浏览器可能都无法猜测 MIME 类型。
这两个问题都可以通过设置 HTTP 服务器来解决,但这完全违背了拥有一个简单的、独立的文件(只需要浏览器即可运行)的目的。
有没有办法仅使用本地文件加载和调用 WASM?
您可以将 wasm 编码为 base64,然后像这样加载它(据我所知,没有大小限制 - 绝对适用于 5Mb+)
Module.wasmBinaryFile="data:application/wasm;base64,AGFzbQEAAAABww...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)