MIME类型不匹配导致资源被阻止(X-Content-Type-Options:nosniff)

时间:2016-11-21 20:14:30

标签: javascript mime

我正在使用JavaScript和HTML开发网页,一切正常 当我从HTML页面收到此错误列表时很好:

The resource from “https://raw.githubusercontent.com/dataarts/dat.gui/master/build/dat.gui.min.js”
  was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js” was
  blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/CanvasRenderer.js”
  was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/Projector.js”
  was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js” was
  blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).

自动浏览器更新(Mozilla Firefox)后可能出现这些错误 在设置中已经改变了一些东西。你知道怎么解决这个问题吗? 问题

14 个答案:

答案 0 :(得分:35)

检查文件路径是否正确且文件是否存在 - 在我的情况下是问题 - 因为我修复了它,错误消失了

答案 1 :(得分:20)

这可以通过更改您的网址来修复,例如:

https://raw.githubusercontent.com/svnpenn/bm/master/yt-dl/yt-dl.js
Content-Type: text/plain; charset=utf-8

示例好:

https://cdn.rawgit.com/svnpenn/bm/master/yt-dl/yt-dl.js
content-type: application/javascript;charset=utf-8

rawgit.com 是github的缓存代理服务。您还可以转到此处,以交互方式获取原始 raw.githubusercontent.com URL的相应​​URL。见其FAQ

答案 2 :(得分:4)

在我的情况下,我刚刚错过了get_template_directory_uri()之后的斜杠“/”,因此导致/生成的路径错误:

我的错误代码:

wp_enqueue_script( 'retina-js', get_template_directory_uri().'js/retina.min.js' ); 

我的更正代码:

wp_enqueue_script( 'retina-js', get_template_directory_uri().'/js/retina.min.js' );

答案 3 :(得分:4)

检查您的路径,如果文件不存在于给定路径中,则会出现此错误。

答案 4 :(得分:2)

这可能是因为浏览器无法访问文件。在使用node.js创建应用程序时,我偶然发现了这种类型的错误。您可以尝试直接请求脚本文件(复制和粘贴URL),看看是否可以检索它。你可以看到真正的问题是什么。这可能是因为文件所在的文件夹的权限,或者由于路径不正确而导致浏览器无法找到它。在node.js中,在指定路由到文件后,所有工作都可以。

答案 5 :(得分:2)

我已经通过将js文件中的字符集从没有BOM的UTF-8更改为Notepad ++中的简单UTF-8来解决了这个问题

答案 6 :(得分:2)

你在使用快递吗?

检查您的路径(请注意/ public /后面的“/”:

app.use(express.static(__dirname + "/public/"));

//注意:在“css”之前你不需要“/”,因为它已经包含在上面:

rel="stylesheet" href="css/style.css

希望这有帮助

答案 7 :(得分:1)

在我们的devop团队通过添加X-Content-Type-Options: nosniff更改了Web服务器配置之后,我们开始在生产中遇到此错误。现在,由于这个原因,浏览器被迫解释资源,就像响应头的content-type参数中提到的那样。

现在,从一开始,我们的应用程序服务器就将js文件的内容类型显式设置为text/plain。由于未在网络服务器中设置X-Content-Type-Options: nosniff,因此浏览器将js文件自动解释为JavaScript文件,尽管内容类型被称为text / plain。这称为MIME嗅探。现在,在设置X-Content-Type-Options:nosniff之后,浏览器被迫不进行MIME嗅探,并按照响应标头中的说明采用内容类型。因此,它确实将js文件解释为纯文本文件,并拒绝执行它们或将其阻止。您的错误也显示相同的内容。

解决方案:是让您的服务器将JS文件的content-type设置为

application/javascript;charset=utf-8

这样,它将正常加载所有JS文件,问题将得到解决。

答案 8 :(得分:1)

当我使用azure存储作为静态网站时,出现此错误,所复制的js文件的内容类型为storage.objects.delete,而我将内容类型更改为text/plain; charset=utf-8

它开始工作。

答案 9 :(得分:0)

查看HTTPS和HTTP协议

有时候,如果您使用混合协议[这主要发生在JSONP回调中],您可能会遇到此错误。

确保网页和资源页面具有相同的HTTP协议。

答案 10 :(得分:0)

这可能是错误的路径。 确保在主应用程序文件中具有:

app.use(express.static(path.join(__dirname,"public")));

指向CSS的示例链接为:

<link href="/css/clean-blog.min.css" rel="stylesheet">

类似于js文件的链接:

<script src="/js/clean-blog.min.js"></script>

答案 11 :(得分:0)

我在django服务器中也遇到了同样的问题。所以我在settings.py文件中更改了DEBUG = True

答案 12 :(得分:0)

发生在我身上的标签错误。我误将js文件添加到link标记中。

示例:(错误的一个)

<link rel="stylesheet" href="plugins/timepicker/bootstrap-timepicker.min.js">

它通过为javascript使用正确的标签来解决。示例:

<script src="plugins/timepicker/bootstrap-timepicker.min.js"></script>

答案 13 :(得分:0)

https://cdn.rawgit.com正在关闭。因此,可以使用替代选项之一。 JSDeliver是可以使用的免费CDN。

//加载任何GitHub版本,提交或分支

//注意:建议将npm用于支持它的项目

https://cdn.jsdelivr.net/gh/user/repo@version/file

//加载jQuery v3.2.1

https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/dist/jquery.min.js

//使用版本范围而不是特定版本

https://cdn.jsdelivr.net/gh/jquery/jquery@3.2/dist/jquery.min.js

https://cdn.jsdelivr.net/gh/jquery/jquery@3/dist/jquery.min.js

//完全省略该版本以获取最新版本

//您不应在生产中使用此

https://cdn.jsdelivr.net/gh/jquery/jquery/dist/jquery.min.js

///在任何JS / CSS文件中添加“ .min”以获得缩小版本

//如果不存在,我们会为您生成

https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/src/core.min.js

//在末尾添加/以获取目录列表

https://cdn.jsdelivr.net/gh/jquery/jquery/

ref-https://www.jsdelivr.com/?docs=gh