【问题标题】:Resource blocked due to MIME type?由于 MIME 类型而被阻止的资源?
【发布时间】:2019-10-14 23:39:44
【问题描述】:

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

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

如您所见,它加载正常。

我通常像这样把它们放在我的 html 文档的头部。

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

/脚本

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

firefox 调试器控制台的错误信息如下。

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

我使用 a2 网络托管。他们必须对配置进行一些更改以使其停止工作。

也许我可以通过 .htaccess 文件中的一行来解决这个问题。

A2 托管建议了这条线,但它不起作用。 标头始终未设置 X-Frame-Options

只有在有获取请求时才会出现此问题。 即 ?locs=95

静态文件没有问题。

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

【问题讨论】:

  • “A2 主机建议了这一行,但它不起作用。标题总是未设置 X-Frame-Options”——令人难以置信。他们到底为什么会做出任何改变?

标签: javascript mime


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    有一个简单的解决方案。

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

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

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

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

    【讨论】:

      【解决方案3】:

      我同意你的回答。

      最后我将文件名更改为 .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-Content-Type-Options 在 .htacess 文件中失败。

      【讨论】:

      • 这不是一个论坛帖子,您可以在其中发布另一个帖子只是为了回复志愿者的答案。
      猜你喜欢
      • 1970-01-01
      • 2021-09-04
      • 2021-08-11
      • 2021-03-21
      • 2021-09-10
      • 2020-04-09
      • 2021-02-23
      • 2020-06-20
      • 2021-01-10
      相关资源
      最近更新 更多