
打开Firefox控制台,错误信息为"ActiveTopMenu is not defined"和"AddHeaderIcon is not defined":

ActiveTopMenu和AddHeaderIcon未定义?在文件夹搜索它们,发现在/zb_system/script/c_admin_js_add.php有定义这两个方法,并且页面也有调用c_admin_js_add.php:
<script src="http://www.moju365.com/zb_system/script/c_admin_js_add.php?v=162105" type="text/javascript"></script>有定义、有调用为什么还提示未定义?Firefox控制台第一行的提示信息引起了我的注意:
即使其 MIME 类型(“”)不是有效的 Javascript MIME 类型,仍已加载来自“http://www.moju365.com/zb_system/script/c_admin_js_add.php?v=162105”的脚本。[详细了解
点击“[详细了解]”打开《X-Content-Type-Options》页面,大意是说如果服务器端设置了"X-Content-Type-Options: nosniff",那么对于style和script文件,服务器端一旦设置了不正确的 MIME 类型,请求将会被阻止,再看下Firefox网络工具,似乎也验证了这点:


但是搜索文件夹,并没有找到相关地方设置"X-Content-Type-Options: nosniff",又尝试在c_admin_js_add.php设置Content-Type:
header('Content-type: text/javascript');问题依旧,
在浏览器打开c_admin_js_add.php,保存为/zb_system/script/c_admin_js_add.js(注意扩展名),然后打开/zb_system/admin/admin_header.php,找到:
<script src="<?php echo $bloghost ?>zb_system/script/c_admin_js_add.php?v=<?php echo $blogversion; ?>" type="text/javascript"></script><script src="<?php echo $bloghost ?>zb_system/script/c_admin_js_add.[color=Red]js[/color]?v=<?php echo $blogversion; ?>" type="text/javascript"></script>终极解决方法:Firefox的提示让我误以为是X-Content-Type-Options的原因,后来发现不是的,问题出在Z-BlogPHP对IIS的一些处理上,在c_admin_js_add.php找到下边代码注释掉即可:
// if (isset($_SERVER["HTTP_IF_NONE_MATCH"]) && $_SERVER["HTTP_IF_NONE_MATCH"] == $m) {
// if (PHP_VERSION_ID > 50400 && IS_IIS) {
// SetHttpStatusCode(304);
// die;
// }
// }
评论(0)
暂无评论。