资源因MIME类型而被阻止?

时间:2019-05-29 11:10:36

标签: javascript mime

多年来,我成功地包含了动态创建的javscript文件。

这里是一个示例: https://granadainfo.com/sups.php?locs=95

如您所见,它加载正常。

我通常将它们放在这样的html文档的开头。

script type =“ text / javascript” src =“ https://granadainfo.com/sups.php?locs=95”

/脚本

最近几天他们停止工作了。

以下是来自firefox调试器控制台的错误消息。

由于MIME类型(“ text / html”)不匹配(X-Content-Type-Options:nosniff),“ https://granadainfo.com/sups.php?locs=95”中的资源被阻止。

我使用a2虚拟主机。他们必须对配置进行一些更改才能使其停止工作。

可能是我可以通过.htaccess文件中的一行来解决此问题。

A2主机建议此行,但不起作用。 标头始终未设置X-Frame-Options

仅在有get请求时才会发生问题。 即?locs = 95

静态文件没有问题。

我尝试将文件名更改为.js,并将.htaccess文件更改为将.js解析为php,但这没什么区别。

3 个答案:

答案 0 :(得分:2)

PHP默认为Content-Type: text/html。如果您不提供HTML,则需要使用the header() function来声明要提供的内容。

<?php
    header("Content-Type: application/javascript");

答案 1 :(得分:0)

我同意你的回答。

最后,我将文件名更改为.js并使用php进行了.js解析 在.htacess文件中就是这样。

RewriteEngine on
AddHandler application/x-httpd-ea-php56 .php4 .php3 .php .phtml .htm .html .cgi .ics 
.js

然后将其添加到所有文件的顶部

header('Content-Type: text/javascript');

现在可以使用了。

所有解决问题的努力     X内容类型选项  .htacess文件中的文件失败。

答案 2 :(得分:0)

A2托管的高级支持最终给了我一个很好的答案。 以下内容基于他们所说的内容,确实可以解决问题。

有一个简单的解决方案。

出于安全原因,我们最近在所有服务器上默认将“ X-Content-Type-Options”设置为“ nosniff”。如果未在“ .htaccess”文件中手动设置该选项,则该站点仅默认为服务器正在使用的任何名称(nosniff)。这是导致该网站上的错误的原因。

在此票证的早期,您被告知错误地取消设置“ X-Frame-Options”标头,因为该选项仅适用于iframe。您需要取消设置的实际标题为“ X-Content-Type-Options”。

这是添加到.htaccess文件顶部的行。

标题始终未设置X-Content-Type-Options