1

我尝试通过 jQuery.ajax 发送文件,并且发布效果很好。文件保存完成后,我尝试发回数据库信息的 JSON 对象,如下所示:

header("Content-Type: application/json; charset=utf-8");                
echo json_encode($DatabaseEntity);
die();

但是客户端的 ajax 成功回调的“data”参数为 null,而不是 JSON 对象。

jQuery.ajax 是这样设置的:

$.ajax({
    url: /* url */,
    type: "POST",
    data: postingData, // it's a FormData object
    dataType: "json",
    cache: false,
    contentType: false, // it's because the FormData, if I set "multipart/form-data", then the data not sended
    processData: false,                                
    success: function(data) {
        alert(data); // => this is NULL, and I don't know why!
    }
});

Firefox FireBug 显示结果:这是一个格式良好的 JSON 字符串

有任何想法为什么“数据”为空?

更新

$DatabaseEntity 包含类似的内容:

object(DatabaseEntity)#15 (9) {
   ["Label"]=>
   string(5) "somethinglabel"
   ["Description"]=>
   string(3) "somethingdesc"
   ["Link"]=>
   string(6) "somethinglink"
   ["FileID"]=>
   string(4) "1761"
   ["Order"]=>
   string(1) "1"
   ["Visible"]=>
   string(1) "1"
   ["ID"]=>
   string(1) "1"
}
4

2 回答 2

0

如果您只返回一个字符串,请使用 .d 属性

 alert(data.d)
于 2012-10-03T10:43:19.520 回答
0
echo json_encode("Values"=>$DatabaseEntity);

alert(data.Values);
于 2012-10-03T10:40:04.210 回答