【问题标题】:Chrome 71 will refuse to execute script because its MIME type ('text/x-js') is not executableChrome 71 将拒绝执行脚本,因为它的 MIME 类型('text/x-js')不可执行
【发布时间】:2019-05-21 06:34:06
【问题描述】:

我在 Chrome 71 上遇到问题: 在 Firefox 中它工作正常,也在 Chrome announcement at Google,我们应该期待我们使用 service workerscache storage api 的方式会有两个小的变化。 但是新版本破坏了我的 importScripts,我还不知道如何解决它。

我有一个名为 pdfmake-worker-blob.js 的文件,它生成:

importScripts('./pdfmake.min.js');
importScripts('./vfs_fonts.js');

onmessage = function(req) {

  pdfMake.fonts = {
      Courier: { normal: 'cour.ttf',bold: 'cour-bold.ttf' },
      Arial: { normal: 'arial.ttf',bold: 'arial-bold.ttf' }
  };

  try {
    var pdf = pdfMake.createPdf(req.data);
    pdf.getBlob(function(output) {
        postMessage(output);
    });
  } catch(err) {
    throw err;
  }
}

然后我们在使用之前像这样在另一个服务中创建工作者:

 var pdfmakeWorkerBlob = new Worker('scripts/pdfmake-worker-blob.js');

您可以在 chrome 调试器模式下看到这一点(让我再次提醒您,代码在 firefoxchrome 70 及以下我猜可以正常工作):

在控制台中出现以下消息,我的工人不再做他的工作:

pdfmake-worker-blob.js:1 已弃用:未来版本将拒绝 从执行脚本 'http://myserver_name.company.com/application_name/scripts/pdfmake.min.js' 因为它的 MIME 类型('text/x-js')是不可执行的。

我没有设置这个 Mime 类型,或者我只是做了一个 importscripts 而已。我希望现在更清楚了。

【问题讨论】:

  • 您能向我们展示更多您的工作代码吗? importScripts 是否像文章所说的那样在处理程序中异步调用?
  • 你为什么要设置那个 mime 类型?
  • @Josh Lee:我没有。我只是导入脚本
  • @Novy 浏览器显然认为您将 MIME 类型设置为无效。请在问题中包含您实际设置的内容。
  • 感谢@LShapz 的帮助

标签: javascript google-chrome mime-types web-worker


【解决方案1】:

对于那些面临问题的人来说,这是一个众所周知的问题:“严格的 MIME 类型检查”。 Chrome 启用了严格的 mime 类型检查。堆栈溢出有很多关于它的问题。 但是碰巧仍然可以通过带有 importScripts 的 worker api 来避免“严格的 MIME 类型检查”。

对于像我这样仍在使用 chrome 70.0.3538.110 的用户,没有通过 worker api 上的 importScripts 进行严格的 mime 类型检查。新版本的chrome修复了它。但是在Firefox中仍然可以。我向 mozilla 报告了this behaviour,以防万一

我不清楚,但在我们的生产机器上,我们的 apache 服务器设置了以下 mime 类型:"text/x-js js"。我只是将其替换为 application "application/javascript" js 或 "text/javascript js" 顺便说一句已过时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2018-09-29
    相关资源
    最近更新 更多