多年来,我成功地包含了动态创建的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,但这没什么区别。
答案 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