You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web Worker加载worker.js失败,提示不允许的MIME类型“text/html”如何解决?

你遇到的报错本质是两个问题连锁导致的:首先是worker.js文件请求返回404,服务器返回了404错误的HTML页面,浏览器把这个HTML页面当成Worker脚本加载,自然因为MIME类型是text/html不符合要求被拦截,你之前加的meta标签没有解决本质问题,按下面步骤排查就行:

  • 第一步:核对worker.js的存放路径
    你在index.js里写的new Worker('worker.js')使用的是相对路径,这个路径是相对于当前访问的HTML页面的URL,而非index.js的存放路径。比如你访问index.html的地址是http://172.30.206.80/worker/index.html,浏览器就会去请求http://172.30.206.80/worker/worker.js,你需要确认worker.js确实存放在服务器对应目录下。如果worker.js和index.js都放在js文件夹下,你应该写成new Worker('/js/worker.js')这种绝对路径或者对应正确的相对路径。
    你可以直接把报错里的worker.js请求地址复制到浏览器地址栏访问,如果能正常看到你写的worker.js代码,说明路径没问题,否则先修正路径问题。
  • 第二步:修正错误的meta标签配置
    你当前写的X-Content-Type-Options meta标签格式完全错误,正确的写法应该是:
<meta http-equiv="X-Content-Type-Options" content="nosniff">

不过这个标签只会影响当前HTML页面的资源嗅探策略,Worker脚本的响应头是由服务器返回的,这个标签解决不了Worker的MIME类型问题。

  • 第三步:检查Web服务器的MIME配置
    如果路径确认正确,还是返回错误的MIME类型,需要检查你用的Web服务器(Nginx、Apache、或者前端开发服务器)的配置,确保.js后缀的文件返回的Content-Type响应头是application/javascript,而非text/html。
  • 额外注意:不要直接用file://协议打开HTML文件
    Web Worker出于安全限制不支持本地文件协议访问,必须通过http/https协议启动本地服务器访问页面,否则也会出现类似的MIME类型报错。

内容的提问来源于stack exchange,提问作者Pradipta Sarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:45:08