结果故事还是挺多的!!!!
由于历史问题,当初用的TP+Smarty,一直用3.0开发,挺正常的。升级后第一个问题来了success和error的模板路径识别不对。已发贴求解,这里不多说了
http://www.thinkphp.cn/topic/8088.html
第二个问题就是AJAX问题,并不算什么问题,但值得注意。
新版的ajaxReturn方法做了完善,会根据返回值类型指定输出头信息,很好,很注重细节。
Action.class.php代码细节
if(strtoupper($type)=='JSON') {
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:text/html; charset=utf-8');
exit(json_encode($result));
}elseif(strtoupper($type)=='XML'){
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($result));
}elseif(strtoupper($type)=='EVAL'){
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
}else{
// TODO 增加其它格式
}这一来让他们原来Jquery Ajax的代码忧伤了一把。来看看我们原来的Ajax JS部分
$.post(
$__app__ + "/ProductsShow/save_test",
data,
function (msg) {
var data = eval("(" + msg + ")"); //一般用这个把返回值转成JS的JSON对象
if (data.status == 0) {
// ...
} else {
// ...
}
}
);JS里加粗部分的代码就报错啦,导致好多应用的JS逻辑跑不完,大汗一把。幸好问题找到了,自然有解决的方法,改代码去了。
分享一下,望各位注意绕道。
多么希望TP能把一些改进细节搞个日志啊!改了哪些问题,会带来哪些影响等等
最佳答案