欢迎光临

木子屋

标题: Z-BlogPHP 1.6.0 Valyria后台Javascri&#112;t加载失败解决方法

作者: dnawo

日期: 2020-05-10 00:27 AM

分类: 程序修改

内容: Z-BlogPHP 1.6.0 Valyria+SQLite安装完成进入后台，页面总提示Javascript加载失败：
打开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 ?>zb_system/script/c_admin_js_add.php?v=<?php echo ; ?>" type="text/javascript"></script>
修改为：
复制内容到剪贴板 程序代码<script src="<?php echo ?>zb_system/script/c_admin_js_add.js?v=<?php echo ; ?>" type="text/javascript"></script>
保存，问题解决。
终极解决方法：Firefox的提示让我误以为是X-Content-Type-Options的原因，后来发现不是的，问题出在Z-BlogPHP对IIS的一些处理上，在c_admin_js_add.php找到下边代码注释掉即可：
复制内容到剪贴板 程序代码// if (isset(["HTTP_IF_NONE_MATCH"]) && ["HTTP_IF_NONE_MATCH"] == ) {
// if (PHP_VERSION_ID > 50400 && IS_IIS) {
// SetHttpStatusCode(304);
// die;
// }
// }

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

标题: Z-BlogPHP 1.6.0 Valyria后台Javascri&#112;t加载失败解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.578 ms

返回