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



我有一个网页,正在拉在一些外部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).

I have try:

  1. 通过将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头值。这样,你的浏览器将拒绝加载它,因为没有实际的理由让你的浏览器尝试执行它认为实际上不是JavaScript的东西。

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

最新更新