在 ThinkPHP\Lib\Core\Action.class.php 里的 ajaxReturn() 方法中添加如下代码:
$data['statusCode'] = 1;
$data['navTabId'] = $_REQUEST['navTabId'];
$data['rel'] = $_REQUEST['rel'];
$data['callbackType'] = $_REQUEST['callbackType'];
$data['forwardUrl'] = $_REQUEST['forwardUrl'];
$data['confirmMsg'] = $_REQUEST['confirmMsg'];
$data['message'] = $data['info'];
添加后, ajaxReturn() 方法如下:
protected function ajaxReturn($data,$type='') {
if(func_num_args()>2) {// 兼容3.0之前用法
$args = func_get_args();
array_shift($args);
$info = array();
$info['data'] = $data;
$info['info'] = array_shift($args);
$info['status'] = array_shift($args);
$data = $info;
$type = $args?array_shift($args):'';
}
//新增加部分开始
$data['statusCode'] = 1;
$data['navTabId'] = $_REQUEST['navTabId'];
$data['rel'] = $_REQUEST['rel'];
$data['callbackType'] = $_REQUEST['callbackType'];
$data['forwardUrl'] = $_REQUEST['forwardUrl'];
$data['confirmMsg'] = $_REQUEST['confirmMsg'];
$data['message'] = $data['info'];
//新增加部分结束
if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
switch (strtoupper($type)){
case 'JSON' :
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data));
case 'XML' :
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($data).');');
case 'EVAL' :
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
default :
// 用于扩展其他返回格式数据
tag('ajax_return',$data);
}
}