Web worker显示错误,我不知道为什么

问题描述 投票:0回答:1

重要:根据要求,我所有的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文件/将其拖放到浏览器中)。由于使用原因...

web-worker
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.