重要:根据要求,我所有的HTML文件都必须使用文件协议file://
加载(在浏览器中单击以打开HTML文件/将其拖放到浏览器中。)>
由于使用了来自文件协议的网络工作者,并且无法在浏览器上进行任何修改,因此我目前正在Firefox中运行代码。
我的文件结构如下:
main |-index.html |-pages | |-module1 | |-page1.html |-js | |-index.js |-deps |-worker.js
[
index.js
被加载到page1.html
:
<script src="../../js/index.js"></script>
[index.js
正在尝试加载Webworker文件worker.js
:
const workerURL = '../../deps/worker.js'; let worker = new Worker(workerURL); worker.onmessage = (evnt) => { console.log('success!'); } worker.onerror = (evnt) => { console.log('error: ',evnt.message); } worker.postMessage('');
执行以上操作的结果是
error!
。即使使用workerURL = deps/worker.js
运行它,也会发生相同的错误。最令人沮丧的是,在worker.onerror
的console.log下显示error: undefined
。
我已经在这里呆了很长时间了,不知道如何解决这个问题。我什至不知道如何调试出了什么问题。
[重要提示:由于需要,我所有的HTML文件都必须使用文件协议file://加载(通过在浏览器中单击打开HTML文件/将其拖放到浏览器中)。由于使用原因...
我遇到了同样的问题。我在Firefox(而不是Chrome)中打开了我的应用程序,但在控制台中看到一个错误:“关于由于将Web Worker脚本传递给Worker构造函数而导致的MIME类型('text / html')不匹配,导致资源被阻止”。您认为您可能有同样的问题吗?专门将脚本用作应用程序/ javascript类型,或者将URL提供给严格服务js文件的构造函数,因为浏览器不会加载内容类型不匹配的资源。这里是一些其他信息:https://www.keycdn.com/support/what-is-mime-sniffing