我正在尝试使用JavaScript和WebAssembly进行简单,独立的(仅.html文件和.wasm文件)离线数据可视化。但是,我无法从本地文件加载WASM模块。
第一个麻烦是CORS。尝试使用相对URL或file://
URL加载任何JS模块都会给我带来安全错误。在Firefox上,我设法禁用了本地CORS,但这非常棘手,而且过于宽松。在Chrome上,我需要使用标志启动浏览器。从用户角度来看,这些都不是初学者。有什么方法可以从本地文件加载JS或WASM模块,而不会遇到CORS问题?
绕开CORS,第二个麻烦是,尽管Firefox能够加载JS模块,但WASM模块却失败了:(我的实际错误消息是日语,但我认为这是英文)。 “ .wasm”与来源”。没有显示更多信息。在Chrome上,错误消息为“无法加载模块脚本:服务器以非JavaScript MIME类型“”响应。根据HTML规范对模块脚本强制执行严格的MIME类型检查。”这表明,两种浏览器都可能无法识别MIME类型。
这两个问题都可以通过设置HTTP服务器来解决,但这完全违背了只需要运行浏览器即可拥有一个简单,自包含文件的目的。
是否有一种仅使用本地文件加载和调用WASM的方法?
我正在尝试使用JavaScript和WebAssembly进行简单,独立的(仅.html文件和.wasm文件)离线数据可视化。但是,我在加载WASM模块时遇到麻烦...
您可以将Wasm二进制文件作为Uint8Array内联,并以这种方式实例化。不过,它只有在足够小的情况下才有效。如果Wasm大于4KB,我相信您会收到错误消息。