JavaScript 文件在最后一个 Chrome 版本上停止工作



我们有一个旧页面。最近谷歌浏览器(和其他最新版本的浏览器)停止显示菜单,但是如果我点击"刷新",则检查工具会显示以下错误:

资源解释为脚本,但使用 MIME 类型传输 text/html: ".../menu.js.php"

这个问题的解决方案是什么,或者问题实际上在其他地方?

这是因为服务器未正确设置标头内容类型:

Content-Type: application/javascript

为了澄清,您的服务器应在响应上设置正确的 http 标头以反映内容类型。

我想在你的页面中,你有一个带有type="text/javascript"的脚本标签,但Chrome说服务器没有将内容识别为javascript。

因为Javascript文件实际上是PHP文件,服务器将文件传输为text/html。我自己没有发现这一点。我从SCRIPTONITE的回答中获取了它

要在 PHP 中设置标头,可以使用 header() 函数。应始终尽早设置标头以避免错误。仅当您尚未向输出发送任何内容时,您才能设置标头。没有回声,不是HTML,什么都没有。从手册:

请记住,在发送任何实际输出之前,必须调用 header(),无论是通过普通的 HTML 标记、文件中的空行还是从 PHP 发送。

要设置 Javascript 文件的标头,请使用以下行:

header("Content-Type: application/javascript");
Content-Type这不是

问题。

问题出在别处。我看到的一个问题是花式盒子:

1.9 版的 jQuery 删除了大多数(如果不是全部)折旧方法。

$.browser就是其中之一。Fancybox 依赖于 $.browser,因此如果不安装 migrate 插件,则无法使用 jQuery 1.9 或 maior 以及您的 fancybox 版本。

您可以将 jQuery 降级到版本 1.9

相关内容

最新更新