欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

帝国cms教程

帝国CMS7.5版本ViewClick点击数+点赞JS不显示 MIME类型报错解决办法

帝国cms教程 我的站长站 2026-09-08 共0人阅读

故障现象

帝国CMS 7.5模板中使用ViewClick接口调用文章点击数时,正常情况下接口会输出JavaScript代码,通过document.write()将点击统计显示到网页中。

常见的调用方式如下:

<script src="/e/public/ViewClick/?classid=6&id=261&addclick=1"></script>

但是在部分服务器环境下,浏览器控制台可能出现下面的错误:

Refused to execute script because its MIME type ('text/html') is not executable

同时,网页原本应该显示点击数量的位置变成空白,ViewClick接口返回的数字无法正常显示。

问题原因

这个问题主要与ViewClick接口返回的Content-Type响应头有关。

ViewClick程序实际输出的是JavaScript代码,例如:

document.write('123');

但如果服务器返回的HTTP响应头却是:

Content-Type: text/html

浏览器就会认为这个资源是HTML,而不是JavaScript。当它作为<script src="...">加载时,浏览器进行MIME类型检查后可能拒绝执行,从而导致点击数字无法显示。

因此,重点并不是修改模板调用代码,而是让ViewClick接口返回正确的JavaScript MIME类型。

详细修复方法

步骤一:找到ViewClick源文件

进入帝国CMS网站程序目录,找到ViewClick对应的PHP文件:

/e/public/ViewClick/index.php

步骤二:添加JavaScript响应头

打开index.php文件,修改php代码

echo"document.write('".$shownum."');";

修改为:

header("Content-Type: application/javascript; charset=utf-8");
echo "document.write('".$shownum."');";
exit;

这里只需要增加响应头声明即可,不要随意修改帝国CMS ViewClick原有的其他程序代码

修改的重点只是告诉浏览器:当前PHP接口返回的内容实际上是JavaScript。

步骤三:模板调用无需修改

原来的模板调用代码可以继续使用:

<script src="/e/public/ViewClick/?classid=6&id=261&addclick=1"></script>

不需要为了这个问题重新修改模板标签或者更换调用方式。

如何验证修复是否成功

修改完成后,打开网页并按F12进入浏览器开发者工具,在Network(网络)面板中找到ViewClick对应的请求。

打开该请求的响应头,查看Content-Type

修复之前可能显示:

Content-Type: text/html

修复后应该返回JavaScript对应的类型,例如:

Content-Type: application/javascript; charset=utf-8或JS

同时直接访问ViewClick接口时,如果能够看到类似下面的JavaScript输出,也说明接口已经正常返回脚本内容:

document.write('123');

此时重新刷新网站页面,点击数即可正常显示。

修改时需要注意

  • 修改帝国CMS核心或公共程序文件之前,建议先做好文件备份。

  • 以后重新覆盖升级帝国CMS程序时,如果该文件被覆盖,需要重新检查这项修改。

  • 如果服务器设置了统一的PHP响应头,需要确认没有将ViewClick接口强制设置成text/html

  • 修改后建议同时测试点击数显示和点击数增加功能,确认接口整体运行正常。

总结

帝国CMS 7.5使用ViewClick接口调用点击数时,如果网页数字显示为空白,同时浏览器控制台出现MIME类型为text/html、无法执行脚本的错误,可以优先检查ViewClick接口的HTTP响应头。

通常无需修改原来的模板调用代码和点击数输出逻辑。修改完成后,再通过浏览器Network面板确认Content-Type是否已经变为application/javascript即可。