网络工作者显示错误,我不知道为什么

时间:2019-06-08 07:41:35

标签: web-worker

重要提示::由于要求,我必须使用文件协议file://加载我的所有HTML文件(在浏览器中单击以打开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

我已经在这里呆了很长时间,也不知道如何解决这个问题。我什至不知道如何调试出了什么问题。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我在Firefox(而不是Chrome)中打开了我的应用程序,并且在控制台中看到一个错误:“有关由于将Web Worker脚本传递给Worker构造函数而导致的MIME类型('text / html')不匹配导致资源被阻止”。您认为您可能有同样的问题吗?专门将脚本用作应用程序/ JavaScript类型,或者将URL提供给严格服务js文件的构造函数,因为浏览器不会加载内容类型不匹配的资源。以下是一些其他信息:https://www.keycdn.com/support/what-is-mime-sniffing