discuz微信内注册或者登录出现404页面

发布于 2017-02-27  1.8k 次阅读


终于解决了,快愁死了。
有人还要200解决问题,说是需要修改好多地方。。。


故障现象:
手机触屏版微信内注册或者登录按钮提交以后会出现404页面,出错页面的网址为xxx.com/undefined
网络出现问题,请稍后再试
不能快捷回复
不能删除附件图片,提示网络错误
……
一切跟DZ自带提交表单有关的ajax返回xml数据有关的错误最近我的客户也遇到了这个问题,不得不研究一下,这里将最终的研究成果公布给需要的网友。
经过追踪注册、登录按钮的去路,调试错误信息以后,我们得到一个最终的结果,安卓版本最新的X5核心(或许今后的核心都会遇到这个问题)的内置浏览器不支持XML的GBK编码,所以UTF8的程序没问题,只有安卓版本的微信或者X5核心的浏览器会如此。

好了,话不多说,我知道你们需要结果而不是这个过程如果有用,请回帖支持我
解决方案看下面

既然有了方向,我们找到了XML编码控制的地方(其实这个位置也可能控制了部分正常页面的编码,会导致有些在模板里直接书写的中文字符乱码):

header_ajax.htm

这个文件有触屏版本和普通电脑版本,路径分别在

template\default\common\header_ajax.htm(电脑版本)
template\default\touch\common\header_ajax.htm(触屏版本)

编辑header_ajax.htm,查看第八行
echo '<?xml version="1.0" encoding="'.CHARSET.'"?>'."\r\n";
这里的编码使用了系统配置文件里的全局设置CHARSET,既然是GBK版本,全局设置就是默认GBK,我们只需要修改这里指定为UTF8即可
实际修改为如下即可
echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
好了,享受这一份好心情吧,一切恢复如初了。

感谢原文作者的无私分享:http://www.discuz.net/thread-3803261-1-1.html