目前我用的 thinkphp 版本是 3.1.3
J-UI dwz 版本好像是 1.4
当我在项目开发的过程中 遇到了这么的一个问题,
当我我在后台执行ajax操作的时候,success,error不能成功的返回提示的信息,而是返回object object这样的一条错误提示,
研究了很久发现是版本的问题,新改版的ThinkPHP对DWZ中的Ajax技术中的一点不符合版本的问题
所以我就 更改 Action.class.php 中 ajaxReturn函数 为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
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'
];
//840206883@qq.com
//较原版增加部分--
//
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
);
}
}
|