由于 MIME 类型不匹配,无法加载 JavaScript 文件

Unable to load JavaScript file due to a MIME type mismatch

我有一个网页正在引入一些外部 JS 文件。脚本标签非常简单,就是普通的旧

<script type="text/javascript" src="https://oursite.com/a-valid-file.js"></script>

最近一次服务器更新后,所有这些文件都无法加载并出现以下错误:

The resource from “https://oursite.com/a-valid-file.js” was blocked due to MIME type (“application/unknown”) mismatch (X-Content-Type-Options: nosniff).

我试过:

  1. 通过将 JS 附加到标记来拉入 JS,并像这样显式更改类型:
var jsfile = document.createElement("script");
jsfile.src = "https://oursite.com/a-valid-file.js";
jsfile.async = true;
jsfile.type = "application/javascript";  //have tried several here
var head = document.getElementsByTagName('head')[0];
head.appendChild(jsfile);
  1. 将JS文件的编码改为UTF-8、ANSI等编码(无差别)

  2. 尝试不同的浏览器(Edge、Chrome 和 Firefox 都给出相同的结果)

我不控制服务器 - 它由另一个团队托管和管理。我的问题是:

  1. 为什么会出现这个错误?

  2. 我可以通过更改我的文件来自行解决这个问题吗?

  3. 如果我必须请求服务器团队进行配置更改,我需要请求什么更改?

您从中检索脚本的服务器正在使用与 JavaScript 文件不对应的 Content-Type header 值进行响应。因此,您的浏览器将拒绝加载它,因为您的浏览器没有实际理由尝试执行它认为实际上不是的东西 JavaScript.

除非你可以在中间放置一个代理来获取响应并在返回客户端之前修改这个 header,否则管理服务器的团队有责任修复 header他们正在发送回复。